首页 > 解决方案 > No DbContext found in Console App using EF Core dotnet EF migration add results in No DbContext found

问题描述

请注意,这是一个 CONSOLE 应用程序。

问题 当使用 dotnet ef migrations add InitialCreate --context Efc.Models.ApplicationDbContext 我收到以下消息:“没有找到名为 'Efc.Models.ApplicationDbContext' 的 DbContext”

我在 EFConsole.ConUI 目录中运行 dotnet 命令。拼写似乎是正确的。

使用VS2019,EntityFramework Core 3.1.3

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(@"Server=SSSSSSSS\XXSQLSERVER;Database=PhoneNumberTest;User ID=XXXXXXXX;Password=XXXXXXXX");
        }

按照指示安装以下软件包:

EFConsole.ConUI 控制台项目

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

Efc.Models -- 模型和 ApplicationDbContext 的类库

Microsoft.EntityFrameworkCore.SqlServer

Efc.RepositoryLayer——存储库的类库。

Microsoft.EntityFrameworkCore.SqlServer

如果我将 ApplicationDbContext 移动到 EFConsole.ConUI 项目,则 dotnet ef 命令有效。但出于显而易见的原因,ApplicationDbContext 需要位于单独的项目中,以便至少可以从 Efc.Repository 项目中引用它。

编辑: 注意:因为这是一个控制台应用程序,所以我没有 Startup 类,也没有像在其 Startup 类中的 WebApp 中那样加载任何服务。会不会是这个问题??

我一直在寻找和阅读,直到我的眼睛在流血。:(

感谢您的任何指导。

标签: asp.net-mvcentity-frameworkdbcontext

解决方案


尝试打开 Nuget 包管理器控制台:在 Visual Studio 中:工具 -> NuGet 包管理器 => 包管理器控制台

选择默认项目为 DbContext 类所在的项目: 在此处输入图像描述

运行命令:

add-migration InitialCreate 

推荐阅读