EF Code First Migrations - 不检测更改

时间:2013-03-15 03:27:02

标签: c# entity-framework migration

前言:在我的数据库表中,我有两个字段:(string)(FK)UserPayoffData_UserName和(int)UserPayoffDataUserName。我犯了一个错误,实际上,我希望它只是单个属性,(字符串)(FK)UserPayoffData_UserName,但是调用(字符串)(FK)UserPayoffDataUserName,我的第二个字段((int){{1将会消失。

现在,在我的模型中,我有这个无效的属性:

UserPayoffDataUserName

所以我把它改成了一个字符串(现在,如果我放弃我的数据库并重新创建它,它将是一个外键):

public int UserPayoffDataUserName { get; set; }

现在我做了public string UserPayoffDataUserName { get; set; },并且我期望的是,迁移将以某种方式重命名为具有正确命名的外键。但它没有做任何事情。我有什么可以做的吗?

2 个答案:

答案 0 :(得分:0)

如果我清楚地理解这一点,您需要删除mymigration或您从项目中获得的任何其他旧迁移。它们应该在您的Migration folder中。如果您需要迁移,则必须创建新迁移。然后根据需要更改您的类,例如属性命名和所有属性映射。然后构建解决方案,并运行Update-Database -Force

请记住,由于您正在使用EF Code First,因此您可以从Server ExplorerApp_Data文件夹中删除您的数据库(不要错过这个,从服务器资源管理器中删除如果你不在这里做什么就没有任何意义)并且没什么大不了的,因为它可以在`Update-Database -Verbose

的瞬间创建

答案 1 :(得分:0)

通过执行Add-Migration mymigration,您只需创建将在执行迁移时使用的脚手架代码文件。

因此您的数据库不会自动更改。你必须发起它!

使用update-database -TargetMigration mymigration,这将执行您所做的所有更改并保存到mymigration文件