AutomaticMigrationDataLoss允许不工作

AutomaticMigrationDataLoss允许不工作

我遇到的一种情况是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
{
    ...
}

最佳答案

您是否尝试过在包管理器控制台中使用'-Force'参数?

例如。

Update-Database -Force -Verbose

关于c# - AutomaticMigrationDataLoss允许不工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23163808/

10-13 06:23