首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF 5“没有应用自动迁移,因为它会导致数据丢失”--只更改了列名。

EF 5“没有应用自动迁移,因为它会导致数据丢失”--只更改了列名。
EN

Stack Overflow用户
提问于 2013-08-01 09:58:47
回答 6查看 38.2K关注 0票数 20

我有:

代码语言:javascript
复制
AutomaticMigrationsEnabled = True
AutomaticMigrationDataLossAllowed = False

在我的配置文件中,现有的模型是:

代码语言:javascript
复制
Public Property ID() As Integer
Public Property ERP_ArticleCode() As String
Public Property description() As String

我所做的就是将第三列从“描述”改为"am_description“,并运行"update-database -verbose”,这导致了“自动迁移没有应用,因为它会导致数据丢失”!

我不明白这..。为什么我不能更改一个列名和更新数据库-这不应该是一个数据的问题,应该吗?我做错了什么吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-09-19 16:02:35

您应该编辑向上和向下的方法,并将AddColumn和DropColumn指令替换为RenameColumn。

EF无法检测是否要重命名列,或者是否要删除列并创建新列。

票数 20
EN

Stack Overflow用户

发布于 2013-09-19 15:57:25

下面的代码对于运行您的迁移是不必要的:

代码语言:javascript
复制
AutomaticMigrationsEnabled = True
AutomaticMigrationDataLossAllowed = False

而且,根据本文(来自实体框架codeplex),这是一个EF错误,您可以在迁移过程中使用-Force属性忽略它。

代码语言:javascript
复制
Update-Database -Force

代码语言:javascript
复制
Update-Database -TargetMigration: X -Force

它应该能解决你的问题。

海事组织,你应该让EF决定对你的专栏做些什么,只是我的意见。

票数 37
EN

Stack Overflow用户

发布于 2018-06-07 12:27:44

我的问题是,我刚刚做了另一个小小的改变,那就是迁移。同时试图更新。用Update-Database -Name "peek"检查一下,看看你是否也有。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17990851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档