具有多个上下文的EF 5代码优先迁移?

4
我们的应用程序在同一个应用程序数据库中有两个上下文。每个上下文都干净地分割了它们的关注点。
现在似乎如果我有两个上下文Context1和Context2,如果我只更改Context2的类,则EF 5.0认为甚至Context1也已更改。这似乎使EF 5.0困惑,并似乎会触发迁移both。在那不正确的检测之后,生成的迁移也是不一致的。由于我们自己的疏忽和大多数情况下必须重新构建整个数据库:(上行和下行路径不一致),我们在一个奇怪的死胡同里。
因此,问题:
  1. EF 5.0是否支持多个上下文的模型更改检测和迁移?我在考虑在这里提问之前阅读了此EF 4.3 stackoverflow问题此MSFT帖子由Rowan发表。我认为这不是重复,因为EF 4.3 => EF 5.0改进目标代码优先和迁移。
  2. 如果不支持,则您们(MSFT / Rowan!)计划何时支持?
感谢。
1个回答

4
多个上下文映射到单个数据库目前还不太稳定,但是应该有一个简单的解决方法。创建一个额外的上下文,除了迁移之外,您的应用程序逻辑中将永远不使用它。将其他上下文中的所有实体映射到用于数据库创建/迁移的中央上下文中。
顺便说一句,EF是开源的,因此您可以贡献代码并自行添加对多个上下文的支持。

EF可能是开源的,但是微软是否接受用户提交的更改来构建微软发布的版本呢? - Eric J.
多个上下文/单个数据库(但在数据库中有分离的实例)对我来说效果非常好。你能否通过概述还存在哪些不够完善的方面来改进你的回答?我的方法参考 https://dev59.com/XmYr5IYBdhLWcg3ws8NT#21398866 。 - Eric J.
@EricJ.:我的回答与EF5有关。我认为你链接的答案依赖于EF6,而在那里得到了显着改进。是的,微软接受一些用户提交的更改。 - Ladislav Mrnka
我仍在使用EF5,对我来说似乎运行良好。只是好奇是否有任何特定的隐藏障碍,我还没有遇到。 - Eric J.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接