我正在尝试开始将 EF 迁移与现有数据库结合使用。
启动项目是一个 MVC 3 项目,域对象位于同一解决方案的单独项目中。
以下是我采取的步骤:
Add-Migration InitialMigration -IgnoreChanges -Verbose
已创建 Configuration.cs 和 ###_InitialMigration.cs。必须编辑 Configuration.cs 以添加我的上下文对象的名称,因为它位于单独的项目中。
Update-Database
已将 dbo.__MigrationHistory 添加到我的数据库
Added a new property to an existing class
private ulong? myProp;
[DataMember]
public ulong? MyProp
{
get { return myProp; }
set
{
if (myProp != value)
{
myProp = value;
RaisePropertyChanged(() => this.MyProp);
}
}
}
成功编译解决方案。
Add-Migration 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 接受模型更改?
最佳答案
事实证明,EF 迁移不喜欢我使用的 ulong?
数据类型。该属性在没有任何警告的情况下被忽略。
将类型更改为 long?
允许迁移成功。
关于entity-framework-4.3 - Entity Framework 迁移未检测模型更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11005646/