无法在类库中为实体框架启用迁移
Posted
技术标签:
【中文标题】无法在类库中为实体框架启用迁移【英文标题】:Cannot enable migrations for Entity Framework in class library 【发布时间】:2012-03-20 14:32:54 【问题描述】:我刚开始使用 EF 5,并且正在使用他们的代码优先迁移工具,但是当我尝试启用迁移时似乎遇到了错误。
我在包管理器控制台中输入Enable-Migrations
,然后它说
在当前项目中找不到派生自 DbContext 的类。 编辑生成的配置类以指定启用迁移的上下文。 为项目 MyApp.MvcUI 启用 Code First 迁移。
然后它会在我的 MvcUI 项目中创建一个 Migrations 文件夹和一个配置类。问题是,我的 DbContext 位于一个名为 MyApp.Domain 的类库项目中。它应该在那个项目中完成所有这些工作,并且找到我的 DbContext 应该没有问题。
【问题讨论】:
【参考方案1】:哦,哇,没关系。我很笨。
在 Nuget 包管理器控制台的顶部有一个标有“默认项目:”的下拉菜单。确保将其设置为要对其运行命令的项目。
希望这可以帮助其他人避免我的尴尬错误。
【讨论】:
不知道有这个。你摇滚。 谢谢!我也错过了这个。 不敢相信我错过了那个下拉菜单,非常感谢。 @JaredStroeb 很高兴我能提供帮助。别担心,我不敢相信我也错过了。 非常感谢!也错过了。【参考方案2】:实际上有 3 种方法可以让 Nuget 命令在特定项目中运行:
-
[包管理器控制台]在控制台工具窗口顶部的下拉菜单中设置活动项目
[包管理器控制台] 查找参数以指定项目。对于我见过的一些 cmdlet -ProjectName 和一些使用 -Project
[解决方案资源管理器] 右键单击所需的项目,然后使用图形包管理器窗口(管理 NuGet 包...)。
【讨论】:
我猜第三个选项是为你设置包管理器控制台下拉列表对吗?以上是关于无法在类库中为实体框架启用迁移的主要内容,如果未能解决你的问题,请参考以下文章