【发布时间】:2020-03-19 10:56:27
【问题描述】:
我正在尝试从另一个 .NET Core 项目添加 ApiAuthorizationDbContext 的迁移,但由于我不知道如何获取第二个参数 IOptions<OperationalStoreOptions>,因此无法从设计时实例化它。
这是我的 DbContext 构造函数(它继承了我接受 TUser、TRole、TKey 的自定义 ApiAuthorizationDbContext)
public class ApplicationDbContext : ApiAuthorizationDbContext<ApplicationUser, ApplicationRole, Guid>
{
public ApplicationDbContext (DbContextOptions options, IOptions<OperationalStoreOptions> operationalStoreOptions)
: base(options, operationalStoreOptions)
{
}
这是我的DesignTimeDbContextFactory
public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<KontestDbContext>
{
public ApplicationDbContext CreateDbContext(string[] args)
{
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json").Build();
var builder = new DbContextOptionsBuilder<ApplicationDbContext>();
var connectionString = configuration.GetConnectionString("DefaultConnection");
builder.UseSqlServer(connectionString);
return new ApplicationDbContext(builder.Options, ????); <--- how to resolve the IOptions<OperationStoreOptions> here ??
}
}
我从this issue in GitHub 找到了答案,但仍然不知道如何解决这个参数。
我也尝试将 IOptions 注入构造函数,但是在添加迁移时,它会抛出一个异常,即找不到 DesignTimeDbContextFactory 的无参数构造函数
有人可以通过这个给我一个提示吗,我对 .NET Core / EF Core 很陌生,如果有人可以提供帮助,我会非常高兴!
(我使用的是 .NET Core 3.0 和 Entity Framework Core)
【问题讨论】:
标签: c# entity-framework .net-core entity-framework-core