не может употреблять Scoped Service 'dbcontextoptions' из singleton 'idbcontextpool' < /p>
< /blockquote>
Это происходит, даже если я снял, что я ожидал, что я ожидал, и все это правильно. иметь возможность зарегистрировать один и тот же класс dbContext как AddDBContext (Scoped), так и в AddPooledDbContextFactory (Singleton) в одном и том же приложении, поскольку они используются в разных службах для разных целей (следовать за логикой по сравнению с параллельной обработкой и той же носимым и тем же, что и той же документация, и то же, и то же, что иначе, и то же, что иначе, и то же, что иначе, и то же, и то же, и то же, и то же, и той же присвоение и той же оправдания, что и той же, что иначе, и то же, что и то же, и то же, что и то же, и то же, и той же наоборот, и то же, что и то же, что иначе в одном USEORACL (...) вызов. Я также гарантировал, что dbcontextoptions не вводится вручную в какие -либо услуги. В нем и инициируйте AddDBContext и AddPooledDbContextFactory с различным (но одинаковым контентом) DBContext . Что вы думаете, ребята?var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("Default");
//
builder.Services.AddDbContext(options =>
options.UseOracle(connectionString));
//
builder.Services.AddPooledDbContextFactory(options =>
options.UseOracle(connectionString));
builder.Services.AddScoped();
var app = builder.Build();
app.MapControllers();
app.Run();
< /code>
MyDbContext.cs:
public class MyDbContext : DbContext
{
public MyDbContext(DbContextOptions options) : base(options) {}
public DbSet Dummy { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity().HasKey(x => x.Id);
}
}
public class DummyEntity
{
public int Id { get; set; }
public string Name { get; set; }
}
< /code>
MyService.cs:
public class MyService
{
private readonly IDbContextFactory _factory;
public MyService(IDbContextFactory factory)
{
_factory = factory;
}
public async Task GetCountAsync()
{
using var context = await _factory.CreateDbContextAsync();
return await context.Dummy.CountAsync();
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... and-an-idb
Мобильная версия