我遇到的情况是AutomaticMigrationDataLossAllowed
类的Configuration
属性在Entity Framework 6中无效。
我将所需的属性设置为true,但是我收到一个更新异常,指出可能发生潜在的数据丢失。具有讽刺意味的是,它建议我将属性设置为true,我已将其设置为true。
以下是我实例化模型容器(上下文)的方法。
Database.SetInitializer(new ModelInitializer());
Entities = new ModelContainer();
以下是我ModelInitializer
课程的相关部分。
internal class ModelInitializer : IDatabaseInitializer<ModelContainer>
{
private static bool _usedBefore;
public void InitializeDatabase(ModelContainer context)
{
...
var migrateInitializer = new MigrateDatabaseToLatestVersion<ModelContainer, Configuration>();
migrateInitializer.InitializeDatabase(context);
}
}
最后,这是我的Configuration
课程。
internal sealed class Configuration : DbMigrationsConfiguration<ModelContainer>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
protected override void Seed(ModelContainer context)
{
}
}
我的ModelContainer
类(上下文)基本上只有一些属性和类,所以我认为这与问题无关。这是宣言。
internal class ModelContainer : DbContext
{
...
}
答案 0 :(得分:3)
您是否尝试过使用&#39; -Force&#39;包管理器控制台中的参数?
E.g。
Update-Database -Force -Verbose
答案 1 :(得分:1)
您是否使用单独的库进行数据访问?
如果是,则在运行查询时需要提供其名称:
Add-Migration -StartUpProjectName“您的DAL项目”MyNewMigration
Update-Database -StartUpProjectName“你的DAL项目”-Verbose