我正在尝试将EF迁移与现有数据库一起使用。
启动项目是一个MVC 3项目,域对象位于同一解决方案的单独项目中。
以下是我采取的步骤:
Add-Migration 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()
{
}
}
看起来不太好......迁移在哪里?
Update-Database -Verbose -Script
未提及升级脚本中的新属性
INSERT INTO [__ MigrationHistory]([MigrationId],[CreatedOn],[Model],[ProductVersion]) VALUES('201206122137444_MyNewMigration','2012-06-12T22:07:49.170Z',0x1F8B080YadaYada,'4.3.1')
如何让EF Migrations获取模型更改?
答案 0 :(得分:3)
事实证明,EF Migrations不喜欢我使用的ulong?
数据类型。该属性在没有任何警告的情况下被忽略。
将类型更改为long?
允许迁移成功。