在程序集“ProjectName.Web”中找不到 DbContext。确保您使用的是正确的程序集,并且该类型既不是抽象的也不是泛型的

Posted

技术标签:

【中文标题】在程序集“ProjectName.Web”中找不到 DbContext。确保您使用的是正确的程序集,并且该类型既不是抽象的也不是泛型的【英文标题】:No DbContext was found in assembly 'ProjectName.Web'. Ensure that you're using the correct assembly and that the type is neither abstract nor generic 【发布时间】:2020-04-11 14:34:18 【问题描述】:

我正在尝试为 ABP.io MVC 项目添加 Volo.Blogging 模块,但我得到了 'No DbContext was found in assembly 'ProjectName.Web' .确保您使用的是正确的程序集,并且该类型既不是抽象的也不是通用的。错误。

bash 命令:

abp new ProjectName
cd ProjectName
abp add-module Volo.Blogging -sp ./src/ProjectName.Web/ProjectName.Web.csproj

我使用的是 macOS Catalina、.NET Core 3.1.100、abp cli 1.1.2、Visual Studio 2019 for Mac。

谢谢。

【问题讨论】:

【参考方案1】:

.DbMigrator项目改为启动项目:

abp add-module Volo.Blogging -sp ./src/ProjectName.DbMigrator/ProjectName.DbMigrator.csproj

参考资料:

https://github.com/abpframework/abp/issues/2368 https://docs.abp.io/en/abp/latest/Getting-Started-AspNetCore-MVC-Template#using-the-dbmigrator-application

【讨论】:

感谢 aaron 的快速回复。不幸的是,设置 DbMigrator csproj 的路径不起作用。我仍然收到 No DbContext 错误。我也尝试过使用 EntityFrameworkCore 和 EntityFrameworkCore.DbMigrations csproj,但没有成功。 不指定怎么样? 现在我得到'没有找到项目。更改当前工作目录或使用 --project 选项。错误。 我无法重现。你在abp new ProjectName 之后是cd ProjectName 吗? 是的,我已经在解决方案文件夹中使用了 cd...同样的结果。我将在我的 Windows 机器上尝试相同的测试并返回结果。再次感谢亚伦。【参考方案2】:

您必须检查库类,例如避免在 .NET 中保留任何名称,例如 (EF, Web ....)

从 EF 更改库类名称

issue EF Library class

致 Article.EF

Solution Fixed

【讨论】:

欢迎来到 SO。始终欢迎提供指向潜在解决方案的链接,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。

以上是关于在程序集“ProjectName.Web”中找不到 DbContext。确保您使用的是正确的程序集,并且该类型既不是抽象的也不是泛型的的主要内容,如果未能解决你的问题,请参考以下文章

在 Hololens 项目中找不到 DLL。 (您是不是缺少 using 指令或程序集引用?)

Code-First,当我进行启用迁移时,我得到“在程序集'DOC'中找不到上下文类型”

在 Xamarin Studio 中找不到类型或命名空间名称“页面”

读取大数据集时在 R 3.4 中找不到函数“fread”

EF在应用程序配置文件中找不到名为“XXX”的连接字符串。

在 Spring Boot 中找不到 DiscoveryClient bean 错误