1

我有 2 个使用 Code First 的不同 MVC 解决方案(Web 应用程序)。这两个应用程序的目标是同一个数据库。当我开始我的第二个应用程序时,我最初遇到了一些关于无法将更改应用到数据库的错误(不记得它们到底是什么)。我终于设法生成了脚本

update-database -Script

并在数据库上运行它并且它工作。但是我大约一周没有意识到的是,我的另一个应用程序首先使用代码并与同一个数据库通信,但不同的表停止工作。当我尝试编译它来调试我遇到的问题和错误时,这几乎意味着以下内容: 支持上下文已更改,这些更改需要推送到数据库(更新数据库) 但是当我尝试更新数据库时,它没有说没有迁移。

我的两个应用程序都是针对 Visual Studio 2012 中的 .Net 4.0 的 MVC3 应用程序。

有关如何解决这种情况的任何提示?

4

2 回答 2

2

不幸的是,在 EF5 中,迁移是单租户的。如果您想使用相同的数据库,您必须关闭迁移并检查数据库是否与您的模型同步,或者在两个应用程序中使用相同的模型。这已在 EF6 中解决 - 这是 EF6 中的多租户迁移规范http://entityframework.codeplex.com/wikipage?title=Multi-tenant%20Migrations

于 2012-10-15T21:05:39.237 回答
1

您可以将当前正在运行的应用程序中的代码优先逻辑重构为公共程序集,并从两个项目中引用新程序集。

于 2012-10-15T20:23:58.300 回答