ASP.NET 核心 - 不带构造函数参数的标识上下文



我正在开发一个 ASP.NET 核心项目,其中包含多个 DbContext,其中一个是 Identity Context。

我将 Tao Zhou(Aspnet 核心身份自定义 ApiAuthorizationDbContext(解决方案应用于一个问题,这首先解决了我的问题,但现在我遇到了一个问题,即我无法在没有参数的情况下创建 ApplicationDbContext。

  • 数据库上下文选项选项
  • IOptions operationsStoreOptions

这里有几行编码来说明它

我在启动中注册了应用程序数据库上下文

启动

services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("IdentityConnection"))
);

ApplicationDbContext

public class ApplicationDbContext : KeyApiAuthorizationDbContext<Identity.AspNetUsers, Identity.AspNetRoles, Guid>
public ApplicationDbContext(DbContextOptions options,
IOptions<OperationalStoreOptions> operationalStoreOptions) : base(options, operationalStoreOptions)
{
}

如果我想创建一个新的

ApplicationDbContext ctx = new ApplicationDbContext();

我需要这两个参数...

如果有人能给我一个提示,那就太好了。

谢谢你和最好的问候, 圣诞颂歌

尝试修改上下文类,如以下示例所示:

public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
// C# will call base class parameterless constructor by default
public ApplicationDbContext()
{ }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
IConfigurationRoot configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
optionsBuilder.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
}
}

参考:

https://learn.microsoft.com/en-us/ef/core/miscellaneous/cli/dbcontext-creation#using-a-constructor-with-no-parameters

https://learn.microsoft.com/en-us/ef/core/miscellaneous/configuring-dbcontext#onconfiguring

相关内容

  • 没有找到相关文章

最新更新