Asp.net MVC 4如何在另一个项目中启用DbContext的迁移?

时间:2013-10-11 23:54:25

标签: asp.net-mvc-4 entity-framework-5 dbcontext n-tier-architecture

我的项目有3层:

  • Project.Core:实体和存储库接口。
  • Project.Data:DbContext,Repositories实现和UnitOfWork实现。有核心参考。
  • Project.UI:视图,控制器,ViewModels。参考代码和数据。

我正在使用MVC 4和Entity Framework 5以及Code First Approach。

那么可以在Project.UI上启用POCO迁移吗?

我试过跑:

  

enable-migrations Project.Data.MyDbContext

但收到消息:

  

在程序集“Project.UI”中找不到上下文类型“Project.Data.MyDbContext”。

3 个答案:

答案 0 :(得分:4)

您需要确保在包含DBContext的项目上运行enable-migrations,因此您无法在UI项目上运行它(否则它需要是当前所选项目的相对路径,例如./。 project.data)

enter image description here

将默认项目设为Project.Data

然后运行:

enable-migrations

答案 1 :(得分:0)

您还可以将Project.Data.DLL包含到Project.ui中,这是我们采用的方法。我们还将视图包装到类似的DLL中,以便在多个项目中使用

答案 2 :(得分:0)

我建议你在解决方案中为数据播种创建一个单独的项目。然后,您可以在种子项目中包含对Project.Data.DLL的引用,并从那里运行迁移(这将是合适的)。