2

我正在尝试将 EF Migrations 与现有数据库一起使用。

启动项目是 MVC 3 项目,域对象位于同一解决方案的单独项目中。

以下是我采取的步骤:

添加迁移 InitialMigration -IgnoreChanges -Verbose

创建了 Configuration.cs 和 ###_InitialMigration.cs。必须编辑 Configuration.cs 以添加我的上下文对象的名称,因为它位于单独的项目中。

更新数据库

将 dbo.__MigrationHistory 添加到我的数据库

向现有类添加了新属性

private ulong? myProp;
[DataMember]
public ulong? MyProp
{
    get { return myProp; }
    set
    {
        if (myProp != value)
        {
            myProp = value;
            RaisePropertyChanged(() => this.MyProp);
        }
    }
}

成功编译解决方案。

添加迁移 MyNewMigration

创建了###_MyNewMigration.cs,其中没有迁移:

public partial class MyNewMigration : DbMigration
{
    public override void Up()
    {
    }

    public override void Down()
    {
    }
}

看起来不太好......迁移在哪里?

更新数据库-详细-脚本

升级脚本中没有提及新属性

插入 [__MigrationHistory]([MigrationId]、[CreatedOn]、[Model]、[ProductVersion])值('201206122137444_MyNewMigration'、'2012-06-12T22:07:49.170Z'、0x1F8B080YadaYada、'4.3.1')

如何让 EF Migrations 接受模型更改?

4

1 回答 1

3

事实证明,EF Migrations 不喜欢ulong?我使用的数据类型。该属性被忽略而没有任何警告。

更改类型以long?允许迁移成功。

于 2012-06-12T22:22:12.110 回答