繁体   English   中英

实体框架 - 在程序集中找不到迁移配置类型

[英]Entity Framework - The migrations configuration type was not be found in the assembly

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

Enable-Migrations -ContextTypeName Models.Account.AccountDetailDbContext

使用配置类创建了迁移文件夹,但随后我收到一条消息:

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

接着

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

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

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

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

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

我通过在Add-Migration之前添加EntityFrameworkCore\解决了这个问题,即最后的语句是:

EntityFrameworkCore\Add-Migration

在为您的新迁移命名之后。

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

  1. 退出视觉工作室

  2. 在 Visual Studio 上再次打开您的项目

  3. 重建解决方案

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

运行Enable-Migrations并创建配置文件后,重新构建项目并再次运行Enable-Migrations -Force

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

我遇到了这个问题,通过更改包管理器控制台顶部的下拉框来选择正确的项目来解决这个问题。 您可能需要最大化包管理器控制台的宽度才能看到此框。

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

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

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

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

我偶然发现了这个问题,经过无数小时的谷歌搜索和反复试验,解决我的具体问题要容易得多。

只需确保您的所有与 EF 相关的 nuget 包都是最新的。

我尝试了在这里可以找到的所有答案,但最终对我有用的是:选择所有与 EF 相关的 nuget 包(在我的情况下)

Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.Design
EntityFramework

并将它们全部更新到最新版本(在我的情况下)问题是我下载的其中一个 NuGet 包的默认值之一已过时且无效。

由于 EF 包的版本更新,我遇到了这个问题。 我已经通过重新安装解决了:

1.Microsoft.EntityFrameworkCore.SqlServer

2.Microsoft.EntityFrameworkCore.Tools

3.Microsoft.EntityFrameworkCore.Design

4.Microsoft.EntityFrameworkCore

使用 Microsoft.EntityFrameworkCore.SqlServer;

使用 Microsoft.EntityFrameworkCore.Tools;

使用 Microsoft.EntityFrameworkCore.Design;

使用 Microsoft.EntityFrameworkCore;

然后:

在 Entity Framework 6 的Add-Migration之前使用EntityFramework6\

EntityFrameworkCore6\Add-Migration

解决方案是检查项目参考。 就我而言,我已将 Entity Framework 和 Entity Framework Core 引用添加到我的项目中。

为了解决这个问题,我从项目中删除了 Entity Framework Reference,现在 EF Core 迁移命令正在运行。

在这种情况下首先,检查 NuGet 包

Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Tools Microsoft.EntityFrameworkCore.Design

很可能缺少上述软件包之一,您会收到错误消息。 如果缺少则安装和

做迁移使用

Add-Migration InitialCreate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM