实体框架 – EF迁移:自动迁移中的RenameColumn?

如果您重命名一个属性,Visual Studio IDE足够聪明,可以帮助您重写在整个代码中重命名该属性.如果重命名在EF迁移中使用的模型上,并且运行标准自动迁移,如:

update-database -f

你会得到这个:

AddColumn("NewName"...
DropColumn("OldName"...

不是你想要的显然,在这一点上运行Add-Migration将允许您进入并手动将这2个调用更改为对RenameColumn的单个调用,但是有没有办法让自动迁移自动执行?有些方法可以重命名我不正确的方法吗?

我在VS2012中使用EF 5.0,但这种行为也出现在EF 4.3.1和VS2010中.

迁移无法自动检测属性和列的重命名.脚手架迁移将包含一个Drop / Create,您需要将其更改为重命名.

如果您只是重命名列(通过向属性添加[Column]注释),我们可以将其作为重命名来检测,因为我们可以匹配列映射到的属性的名称.

我们确实考虑添加-Renames开关到Add-Migration命令,但是最终我们决定编辑生成的代码比在命令行中提供重命名的语法更为简单.

〜罗文

翻译自:https://stackoverflow.com/questions/12355833/ef-migrations-renamecolumn-in-automatic-migrations

转载注明原文:实体框架 – EF迁移:自动迁移中的RenameColumn?