asp.net-core - ASP.NET Core - 没有构造函数参数的 IdentityContext
问题描述
我正在开发一个带有多个 DbContexts 的 ASP.NET 核心项目,其中一个是身份上下文。
我将 Tao Zhou 的(Aspnet core Identity custom ApiAuthorizationDbContext)解决方案应用于一个问题,这首先解决了我的问题,但现在我遇到了无法创建没有参数的 ApplicationDbContext 的问题。
- DbContextOptions 选项
- IOptions 操作存储选项
这里有几行代码来说明它
我在 Startup 中注册了 ApplicationDbContext
启动
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("IdentityConnection"))
);
应用程序数据库上下文
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://docs.microsoft.com/en-us/ef/core/miscellaneous/configuring-dbcontext#onconfiguring
推荐阅读
- apache-spark - Scala Spark:为 json 找到多个来源
- python - Django 服务器不为管理页面提供静态文件
- python - 我试图将图像附加到我的电子邮件发件人写的 python
- java - 获取 mysql(innodb) AUTO_INCREMENT Column、JDBC/getGeneratedKeys()/last_insert_id (in OkPacket) 和 LAST_INSERT_ID() 的方法
- javascript - Cloudflare Workers 主 URL 重定向不起作用,参数也不起作用
- python - Python 无法识别来自外部代码的 txt 文件
- php - 如何配置 symfony check:requirements?
- mysql - 从带有 unicode 字符的表中选择时 Hibernate + Mysql 语法错误
- java - 在 Java 中,当 JSON 的结构不同时,如何屏蔽 JSON 的所有匹配键的值?
- python - Errno 36:解析python XML时文件名太长错误