i have three tier application in Asp.net Mvc Core and use EF core, now i want create auto migration ,
i have DAL layer that my context available here
public class AdminContext : DbContext { public AdminContext(DbContextOptions<AdminContext> options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity<AdsAdsCategory>() .HasKey(bc => new { bc.AdsId, bc.AdsCategoryId }); modelBuilder.Entity<AdsAdsCategory>() .HasOne(bc => bc.Ads) .WithMany(b => b.AdsAdsCategories) .HasForeignKey(bc => bc.AdsId); modelBuilder.Entity<AdsAdsCategory>() .HasOne(bc => bc.Category) .WithMany(c => c.AdsAdsCategories) .HasForeignKey(bc => bc.AdsCategoryId); } public DbSet<Ads> Adses { get; set; } public DbSet<AdsCategory> AdsCategories { get; set; } public DbSet<AdsPosition> AdsPositions { get; set; } public DbSet<AdsCustomer> AdsCustomers { get; set; } }
and in my application startup
i write this code
var context = app.ApplicationServices.GetService<AdminContext>(); if (!context.Database.EnsureCreated()) context.Database.Migrate();
when i run application database was created and table generate but __migrationhistory doesn't exist and migration not generate,
when in start up i remove this line code
if (!context.Database.EnsureCreated())
database was created and __migrationhistory table generated,but my model table not generate,
how i can solve this problem ? and run auto migration in EF Core in three tier application?