EF Code First不同的解决方案/项目相同的数据库

时间:2012-10-15 20:20:04

标签: c# asp.net-mvc entity-framework

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

update-database -Script

并在数据库上运行它并且工作正常。但我大约一个星期没有意识到的是我的另一个应用程序首先使用代码并与同一个数据库进行对话,但不同的表停止工作。当我试图编译它来调试我得到的问题和错误,这意味着以下几点: 支持上下文已更改,需要将这些更改推送到数据库(update-database) 但是当我尝试更新数据库时,它无法说没有迁移。

我的应用程序都是在Visual Studio 2012中以.Net 4.0为目标的MVC3应用程序。

有关如何解决此问题的任何提示?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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