The*_*ook 19 entity-framework ef-migrations entity-framework-5
我有:
AutomaticMigrationsEnabled = True
AutomaticMigrationDataLossAllowed = False
Run Code Online (Sandbox Code Playgroud)
在我的配置文件中,现有的模型是:
Public Property ID() As Integer
Public Property ERP_ArticleCode() As String
Public Property description() As String
Run Code Online (Sandbox Code Playgroud)
我所做的只是将第3列从"description"更改为"am_description"并运行"update-database -verbose",这导致"未应用自动迁移,因为它会导致数据丢失"!
我不明白这一点......为什么我不能只更改列名并更新数据库 - 这应该不是数据存储问题,是吗?难道我做错了什么?
Bet*_*rte 35
以下代码不是运行迁移所必需的:
AutomaticMigrationsEnabled = True
AutomaticMigrationDataLossAllowed = False
Run Code Online (Sandbox Code Playgroud)
并且,根据本文(来自entityframework codeplex),这是一个EF错误,您可以-Force
在迁移中使用属性忽略它.
Update-Database -Force
Run Code Online (Sandbox Code Playgroud)
要么
Update-Database -TargetMigration: X -Force
Run Code Online (Sandbox Code Playgroud)
它应该解决你的问题.
IMO,你应该让EF决定你的专栏是什么,只是我的意见.
Swe*_*ell 19
您应该编辑up和down方法,并使用RenameColumn替换AddColumn和DropColumn指令.
EF无法检测您是否正在重命名某个列,或者您是否要删除一个列并创建一个新列.