У меня есть хранилище как
public interface IEmployeeRepository
{
Task<EmployeeSettings> GetEmployeeSettings(int employeeId);
Task<ICollection<DepartmentWorkPosition>> GetWorkPositions(int employeeId);
}
Конструктор хранилища (DbContext инъекция):
public EmployeeRepository(EmployeeDbContext dbContext)
{
_dbContext = dbContext;
}
И я называю его в EF Core 2.0 как
var settingsTask = _employeeRepository
.GetEmployeeSettings(employeeId.Value);
var workPositionsTask = _employeeRepository
.GetWorkPositions(employeeId.Value);
await Task.WhenAll(settingsTask, workPositionsTask);
// do other things...
Проблема:
В EF Core 3.0 существует InvalidOperationException: вторая операция, запущенная в этом контексте до завершения предыдущей операции ...
DbContext зарегистрирован в ConfigureServices, как
services.AddDbContext<EmployeeDbContext>(ServiceLifetime.Transient);
В учебном пособии сказано следующее: Entity Framework Core не поддерживает несколько параллельных операций, выполняемых на одном и том же экземпляре DbContext.
Но!Как использовать его с репозиториями в async?