我们的应用程序在同一个应用程序数据库中有两个上下文。每个上下文在它们的关注点分离中被清晰地划分。
现在看来,如果我有两个上下文,Context1 和 Context2,并且如果我只更改 Context2 的类,EF 5.0 甚至认为 Context1 也发生了变化。这似乎使 EF 5.0 感到困惑,并且似乎触发了两者的迁移。在那次错误检测之后,产生的迁移也不一致。由于这一点以及我们自己的疏忽,我们处于一个奇怪的死胡同,很可能不得不重新重建整个数据库:((上下路径不一致)
所以,问题:
- EF 5.0 是否支持多个上下文的模型更改检测和迁移?在考虑在这里提问之前,我阅读了这个 EF 4.3 stackoverflow 问题以及Rowan 的这篇 MSFT 帖子。我不认为这是重复,因为 EF 4.3 => EF 5.0 改进的目标是代码优先和迁移。
- 如果没有,你们什么时候(MSFT/Rowan!)计划支持它?
谢谢
背景故事详情(可略过):
我们通过代码优先的 fluent api 仔细设置了两个“模式”,添加了测试数据,对其进行了测试,然后添加了“实时”(alpha 阶段)数据。Context1 包含关键的“实时”信息,因此我们保持不变,然后我context2
通过向代码第一类添加一个新成员(以 db 术语表中的新列)修改了第二个上下文(此处)。当我运行该应用程序时,它似乎检测到两者都已更改!最后,考虑到不会调用未更改的 Context1,我们没有注释掉
Database.SetInitializer<Context1>(new DropCreateDatabaseIfModelChanges<Context1>());
我们在启动期间添加的内容。所以它消灭了我们现在重要的桌子!是的,我们应该把它去掉,因为简单地锁定类定义还不够好。