我有这个数据库配置
public class AppDbContext : DbContext
{
public AppDbContext(string connectionStringOrName)
: base(connectionStringOrName)
{
Database.SetInitializer(new AppDbInitializer());
}
public AppDbContext()
: this("name=AppDbContext")
{
}
public DbSet<User> Users { get; set; }
public DbSet<Log> Logs { get; set; }
}
我有这个迁移配置
public class AppDbInitializer : MigrateDatabaseToLatestVersion<AppDbContext,AppDbMigrationConfiguration>
{
}
public class AppDbMigrationConfiguration : DbMigrationsConfiguration<AppDbContext>
{
public AppDbMigrationConfiguration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
protected override void Seed(AppDbContext context)
{
if (context.Users.Any()) return;
AddAdmin(context, "Admin", "admin@test.com");
}
}
然后我向 Log 实体添加了另一个字段。
Entity Framework 能否自动检测和应用更改?
最佳答案
如果启用了自动迁移,它应该会自动检测模型中的任何小变化。
但是对于较大的更改,例如添加新实体,我已经看到手动应用迁移,您可以使用“Add-Migration”然后运行“Update-Database”来完成
关于c# - 启用的 Entity Framework 自动迁移不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27797864/