我在Asp.net的mvc核心有三层应用程序和使用EF核心, 现在我想创建自动迁移,自动迁移EF核心的三层应用程序
我有DAL层可以在这里找到我的上下文
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; }
}
,并在我的应用程序启动
我写这篇文章的代码
var context = app.ApplicationServices.GetService<AdminContext>();
if (!context.Database.EnsureCreated())
context.Database.Migrate();
当我运行应用数据库创建和表生成但__migrationhistory不存在和迁移不产生,
当启动时我除去产生这个线路码
if (!context.Database.EnsureCreated())
数据库创建和__migrationhistory表,但我的模型表不生成,
我怎么能解决这个问题? 并在EF核心中的三层应用程序中运行自动迁移?
您希望让代码在启动时生成新的迁移并应用它,或者仅应用您在创建之前创建的迁移? – Mats391
我希望migarion自动运行,当我更改模型时,数据库被更新为自动更新 – MrMVC