hn-dotnet/Infrastructure/HNDbContext.cs
2020-12-10 11:43:47 +01:00

37 lines
1.0 KiB
C#

using HN.Application;
using HN.Domain;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
namespace HN.Infrastructure
{
public sealed class HNDbContext : DbContext, IDbContext
{
private readonly ILoggerFactory _loggerFactory;
public DbSet<Link> Links { get; set; }
public HNDbContext()
{
}
public HNDbContext(DbContextOptions<HNDbContext> 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);
}
}
}