entity framework – 在程序集中找不到迁移配置类型

我在C#项目中有多个dbcontexts,当我指定完整命令时,我正在尝试启用迁移,即:

“Enable-Migrations -ContextTypeName Models.Account.AccountDetailDbContext”

使用配置类创建迁移文件夹

然后我收到一条消息:

“检查上下文是否以现有数据库为目标……”

然后

“在程序集’Portal.WebUI’中找不到迁移配置类型’Portal.WebUI.Migrations.Configuration’。”

即使它刚刚创建了文件,也无法找到它。

有人可以帮忙吗?

我在包管理器控制台中选择了正确的项目

我已经尝试使用-verbose命令,但它没有提供其他信息

如果我将dbcontexts和类复制到一个新项目中,那么它一切正常,所以它必须是这个现有项目中的某个东西,它使迁移失败,但我不知道它是什么。

提前感谢您的任何答案

我设法通过卸载EF nuget包然后重新安装它来解决这个问题。

相当烦人……但我希望它可以帮助别人。

由于命名空间中的拼写错误,我也遇到了这个问题

我面临同样的问题。 我发现在我的项目名称中, "-"被包含为"abc-xyz" 。 我删除了我的项目并将其重新创建为"abcxyz"并且它有效。 不要重命名项目 – 您必须在每次引用时重命名它。 在这种情况下,首先卸载EF并重命名,然后再次安装EF。

值得检查的另一个可能问题是:你的项目签了吗? 正如我刚刚发现的那样,如果使用强名称密钥文件对程序集进行签名,则此问题也会发生。 EntityFramework工具包的一部分是在迁移过程中调用的migrate.exe。 如果程序集已签名,则此应用程序无法找到配置类型。

解决方案似乎是→属性→签名:取消勾选“签署程序集”,至少在执行迁移任务时。 完成后勾选它。

我遇到了这个问题。 我的解决方案

  1. 退出视觉工作室

  2. 在visual studio上再次打开您的项目

  3. 重建解决方案

然后删除错误。 我可以运行命令。