无法在类库中为实体框架启用迁移

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 包...)。

【讨论】:

我猜第三个选项是为你设置包管理器控制台下拉列表对吗?

以上是关于无法在类库中为实体框架启用迁移的主要内容,如果未能解决你的问题,请参考以下文章

了解实体框架启用迁移和上下文

实体框架代码优先:启用迁移错误

实体框架6代码首先用oracle更新实体

powershell 启用代码迁移 - 实体框架

无法生成 deps.json 以启用迁移

无法生成显式迁移 - 具有多个上下文/配置的实体框架 6.1.3