IdentityDbContext<TUser, IdentityRole, string>
使用类似的命令时,如何在 EF Core CLI 中指定通用且继承的上下文Add-Migration
?
我的应用程序中有 2 个DbContext
类(在同一个目录和命名空间中),主要的一个是 named ApplicationDbContext
,另一个是RemoteDbContext
. 问题是,主上下文ApplicationDbContext
是通用的并且继承IdentityDbContext<TUser, IdentityRole, string>
:
public partial class ApplicationDbContext<TUser> : IdentityDbContext<TUser, IdentityRole, string>
where TUser : IdentityUser
它配置在Startup.ConfigureServices()
:
services.AddDbContext<ApplicationDbContext<ApplicationUser>>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("MainConnection")));
RemoteDbContext
只是继承DbContext
。
因为有 2 个上下文,所以在使用任何 EF Core CLI 命令(如Add-Migration
or )时,我必须指定一个上下文Script-Migration
,并且使用-Context RemoteDbContext
按预期工作。但是,当我尝试指定通用上下文时,ApplicationDbContext
我收到类似于以下内容的错误消息:
未找到名为“ApplicationDbContext”的 DbContext。
我已经尝试过ApplicationDbContext
, ApplicationDbContext<TUser>
ApplicationDbContext<ApplicationUser>
,甚至ApplicationDbContext`1
基于包管理器控制台提供的选项卡完成(下面的屏幕截图)。
我也尝试过使用 .NET Core CLI,如此处 Microsoft 文档中所述。结果相同。
暂时我要注释掉所有的RemoteDbContext
引用,DbContext
在项目中只运行1个命令,非常耗时。
我正在使用 .NET 5、EF Core、VS 19。