【问题标题】:Asp.net MVC 4 How to enable Migrations from DbContext in another Project?Asp.net MVC 4 如何在另一个项目中启用从 DbContext 迁移?
【发布时间】:2013-10-20 04:06:37
【问题描述】:
我的项目有 3 层:
- Project.Core:实体和存储库接口。
- Project.Data:DbContext、存储库实现和 UnitOfWork 实现。有 Core 的引用。
- Project.UI:视图、控制器、视图模型。有代码和数据的参考。
我将 MVC 4 与实体框架 5 和代码优先方法一起使用。
所以可以在 Project.UI 上启用 POCO 迁移吗?
我试过跑步:
启用迁移 Project.Data.MyDbContext
但是收到消息:
在程序集“Project.UI”中找不到上下文类型“Project.Data.MyDbContext”。
【问题讨论】:
标签:
asp.net-mvc-4
entity-framework-5
dbcontext
n-tier-architecture
【解决方案1】:
您需要确保在包含 DBContext 的项目上运行 enable-migrations,这样您就不能在 UI 项目上运行它(否则它需要是当前选择的项目的相对路径,例如。./项目数据)
将默认项目设置为Project.Data
然后运行:
enable-migrations
【解决方案2】:
您还可以将 Project.Data.DLL 包含到 Project.ui 中,这是我们采用的方法。我们还将视图包装到一个类似的 DLL 中,以便在多个项目中使用
【解决方案3】:
我建议您在解决方案中为数据播种创建一个单独的项目。然后,您可以在种子项目中包含对您的 Project.Data.DLL 的引用并从那里运行迁移(这将是合适的)。