Я следовал этому руководству , чтобы получить параметры из базы данных, но у меня возникла ошибка
System.InvalidOperationException: 'ValueFactory попытался получить доступ к свойству Valueэтот экземпляр. '
Я не знаю, почему это происходит. Ошибка генерируется в методе OnModelCreating()
, особенно в base.OnModelCreating(modelBuilder);
. Я использую Identity и .NET Core 3
public void ConfigureServices(IServiceCollection serviceCollection)
{
serviceCollection.AddDbContext<DatabaseContext>(x =>
x.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
// some code here
serviceCollection.AddIdentity<ApplicationUser, ApplicationRole>()
.AddEntityFrameworkStores<DatabaseContext>()
.AddRoleStore<ApplicationRoleStore>()
.AddUserStore<ApplicationUserStore>()
.AddUserManager<ApplicationUserManager>()
.AddRoleManager<ApplicationRoleManager>()
.AddSignInManager<ApplicationSignInManager>()
.AddDefaultTokenProviders();
serviceCollection.AddSingleton<IConfigureOptions<IdentityOptions>, ConfigureIdentityOptions>();
}
public class ConfigureIdentityOptions : IConfigureOptions<IdentityOptions>
{
private readonly IServiceScopeFactory _serviceScopeFactory;
public ConfigureIdentityOptions(IServiceScopeFactory serviceScopeFactory)
{
_serviceScopeFactory = serviceScopeFactory;
}
public void Configure(IdentityOptions identityOptions)
{
using (var currentScope = _serviceScopeFactory.CreateScope())
{
using (var databaseContext = currentScope.ServiceProvider.GetRequiredService<DatabaseContext>())
{
var users = databaseContext.Users.ToList(); // ERROR HERE
}
}
}
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder); // ERROR HERE
modelBuilder.HasDefaultSchema("Sample.API");
}
Здесь Вы можете увидеть весь код.
Скриншот ошибки