using HN.Application;
using HN.Domain;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
namespace HN.Infrastructure
{
public sealed class HNDbContext : DbContext, IHNContext
{
private readonly ILoggerFactory _loggerFactory;
public DbSet Links { get; set; }
public DbSet Comments { get; set; }
public HNDbContext()
{
}
public HNDbContext(DbContextOptions options, ILoggerFactory loggerFactory) : base(options)
{
_loggerFactory = loggerFactory;
}
protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// Si pas déjà configuré plus tôt dans la chaîne, comme c'est le cas dans l'appli Asp.Net Core
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlite("Data Source=:memory:");
}
optionsBuilder.UseLoggerFactory(_loggerFactory);
}
}
}