diff --git a/Db/XDbContext.cs b/Db/XDbContext.cs index f9e62b3..589672e 100644 --- a/Db/XDbContext.cs +++ b/Db/XDbContext.cs @@ -1,12 +1,14 @@ using Microsoft.EntityFrameworkCore; using xDataService.Configuration; -namespace xDataService.Db { +namespace xDataService.Db +{ /// /// Provide an abstraction layout arround DBContext ... /// Only Used on EFCore ... /// - public abstract class XDbContext : DbContext { + public abstract class XDbContext : DbContext + { private readonly XDataServiceConfiguration config; // @@ -17,62 +19,76 @@ namespace xDataService.Db { // // Constructor ... - public XDbContext ( + public XDbContext( DbContextOptions options, XDataServiceConfiguration config - ) : base (options) { + ) : base(options) + { // - try { - Database.EnsureCreated (); - Database.Migrate (); - } catch { } + try + { + Database.EnsureCreated(); + Database.Migrate(); + } + catch { } this.config = config; } // // Prepare Fluent API ... - protected override void OnModelCreating (ModelBuilder modelBuilder) { + protected override void OnModelCreating(ModelBuilder modelBuilder) + { // - OnXModelCreating (modelBuilder); + OnXModelCreating(modelBuilder); + + // + // Automatically apply all IEntityTypeConfiguration in this assembly + modelBuilder.ApplyConfigurationsFromAssembly(typeof(XDbContext).Assembly); // // Since this class inherit from Identity Db Context, // we have to pass this to Building Identity Models ... - base.OnModelCreating (modelBuilder); + base.OnModelCreating(modelBuilder); } // - public abstract void OnXModelCreating (ModelBuilder modelBuilder); + public abstract void OnXModelCreating(ModelBuilder modelBuilder); // // Prepare Configuring ... - protected override void OnConfiguring (DbContextOptionsBuilder optionsBuilder) { + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { // - if (config.EnableDetailedErrors) { - optionsBuilder.EnableDetailedErrors (); + if (config.EnableDetailedErrors) + { + optionsBuilder.EnableDetailedErrors(); } // - if (config.EnableSensitiveDataLogging) { - optionsBuilder.EnableSensitiveDataLogging (); + if (config.EnableSensitiveDataLogging) + { + optionsBuilder.EnableSensitiveDataLogging(); } // - if (config.EnableTracking) { - optionsBuilder.UseQueryTrackingBehavior (QueryTrackingBehavior.TrackAll); - } else { - optionsBuilder.UseQueryTrackingBehavior (QueryTrackingBehavior.NoTracking); + if (config.EnableTracking) + { + optionsBuilder.UseQueryTrackingBehavior(QueryTrackingBehavior.TrackAll); + } + else + { + optionsBuilder.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking); } // - OnXConfiguring (optionsBuilder); + OnXConfiguring(optionsBuilder); // - base.OnConfiguring (optionsBuilder); + base.OnConfiguring(optionsBuilder); } // - public abstract void OnXConfiguring (DbContextOptionsBuilder optionsBuilder); + public abstract void OnXConfiguring(DbContextOptionsBuilder optionsBuilder); } } \ No newline at end of file diff --git a/xDataService.csproj b/xDataService.csproj index 22fcab0..7432ec4 100644 --- a/xDataService.csproj +++ b/xDataService.csproj @@ -27,7 +27,8 @@ - + +