using System; using HN.Application; using HN.Domain; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; namespace HN.Infrastructure { public sealed class HNDbContext : IdentityDbContext, 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) { base.OnModelCreating(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); } } }