AutomaticMigrationDataLossAllowed无效

时间:2014-04-18 23:15:36

标签: c# entity-framework

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

2 个答案:

答案 0 :(得分:3)

您是否尝试过使用&#39; -Force&#39;包管理器控制台中的参数?

E.g。

Update-Database -Force -Verbose

答案 1 :(得分:1)

您是否使用单独的库进行数据访问?

如果是,则在运行查询时需要提供其名称:

Add-Migration -StartUpProjectName“您的DAL项目”MyNewMigration

Update-Database -StartUpProjectName“你的DAL项目”-Verbose