首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从DBMigration Up()内部调用实体框架模型

从DBMigration Up()内部调用实体框架模型
EN

Stack Overflow用户
提问于 2015-11-24 23:00:15
回答 2查看 129关注 0票数 0

我们正在使用实体框架代码-优先。我们的一个旧数据库需要应用多个迁移,但是在(比方说) 7中的3中,迁移失败了

错误:自创建数据库以来,支持“MyContext”上下文的模型已发生更改。

同样的迁移对于我们的其他数据库也很好,但是随着迁移的出现,这些dbs被更新了--也就是说,每次只迁移一次。

用于该迁移的DBMigration Up()方法使用我们的一些EF模型类来进行一些数据更改,因此我认为问题在于,我们的模型的代码期望迁移7在那里。

除了将所有EF调用从Up()/Down()转移到Seed()方法(失去了它适用的迁移的链接)之外,还有其他策略来避免这种影响吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-25 00:37:42

当迁移为您提供脚手架时,它没有针对您的模型的调用,这是有意的。如果您在早期迁移中使用您自己的模型,然后决定不再需要这些模型,那么迁移将被忽略。

您正确地认为,Seed方法是专门为处理添加相关数据(如通用查找等)而构建的。如果要一起删除查找表,只需删除不再需要的种子逻辑即可。

基本上,这是有意分离的关注点,即迁移不应该直接与任何EF模型有直接联系。

票数 1
EN

Stack Overflow用户

发布于 2015-11-25 16:51:33

在我的同事建议的问题中添加一个替代答案;在Up/Down方法中使用ADO.net调用而不是EF调用。这使数据可以随迁移而向上或向下更改,而不是seed方法(种子方法并不真正知道它是否会在迁移更改上上升)。

尽管如此,我认为Runesun更好地回答了问题的‘为什么’,所以标记是正确的。

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

https://stackoverflow.com/questions/33905512

复制
相关文章

相似问题

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