1

Enable-Migrations在 Package Manager Console 中首次运行 Entity Framework Code First 命令时,这应该是关于参数使用的一个非常基本的问题。这是我的解决方案的分离方式:

  • 我有一个名为MyMvcApp.DomainEntities的项目,其中包含我的域实体 POCO 类和它们的存储库的接口。
  • 我有一个名为MyMvcApp.DataModeling的项目,其中包含 EF 参考(DbContext,存储库实现)。
  • 最后,我有一个MyMvcApp.Web项目,它是 MVC4 项目,并且在 web.config 中还包含 EF 连接字符串(到本地 SQL Server DB)。

当我运行 Enable-Migrations 时,我收到一个令人讨厌的错误消息:

无法加载程序集“MyMvcApp.DataModeling”。(如果您在 Visual Studio 中使用 Code First 迁移,如果您的解决方案的启动项目未引用包含您的迁移的项目,则可能发生这种情况。您可以更改解决方案的启动项目或使用 -StartUpProjectName 参数。)

我似乎已经遍历了“默认项目名称”(包管理器控制台下拉菜单)的所有排列,-ProjectName但无济于事。(我的解决方案的启动项目是 MVC 项目仅供参考)。

鉴于我如何分离我的项目,我如何让Enable-Migrations命令工作?

4

1 回答 1

0

事实证明,问题是您绝对需要一个 App.config 文件,其中包含您在项目中的连接字符串以及 DbContext 类来启用迁移。就我而言,这是 MyMvcApp.DataModeling 项目。我想我可以通过在我的 Enable-Migrations 控制台命令中添加一个参数来使用我的 MVC 项目的 Web.config 文件中的连接字符串-StartUpProjectName 'MyMvcApp.Web',但这似乎不起作用。

对于它的价值,如果您只是想生成数据库而不启用迁移,则您的 DataModeling 项目中不需要 App.config。您只需将以下代码行添加到您的 Global.asax 文件并运行您的应用程序:

using (var context = new EntityContext())
{
    context.Database.Initialize(false);
}
于 2013-08-02T12:30:47.143 回答