EF Core DBContext в многопоточном приложенииC#

Место общения программистов C#
Ответить
Anonymous
 EF Core DBContext в многопоточном приложении

Сообщение Anonymous »

Я разработал многопоточное приложение, которое использует dbcontext of ef core. < /p>
В какой -то момент я получаю эту ошибку: < /p>

Обычно это вызвано различными потоками одновременно с использованием одного и того же экземпляра DBContext. Для получения дополнительной информации о том, как избежать проблем с потоком с DBContext, см. Https://go.microsoft.com/fwlink/?linkid=2097913. Я создаю инстанции dbcontext и вводя его конструкторам служб с использованием инъекции зависимости. >

Код: Выделить всё

var serviceCollection = new ServiceCollection();
var serviceProvider = serviceCollection
.AddSingleton()
.AddSingleton()
.AddSingleton()
.AddSingleton()
.AddDbContext(options =>
{
options.UseSqlServer(settings.DbConnection, o => o.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery));
})
.BuildServiceProvider();
< /code>
Сначала я подумал, что это было связано, потому что все услуги являются одиночными, однако я также пытался с AddScoped и AddTtransient, но это происходит. < /p>
Как я могу избавиться от этой проблемы? Может быть, открывая соединение каждый раз, когда я использую его, но я не знаю, как это сделать. {} 
Но я не знаю, является ли это хорошим решением. Ссылка, на которую указывает сообщение об ошибке, не дает никакого решения. Это только объясняет проблему.
Любой намек?

Подробнее здесь: https://stackoverflow.com/questions/794 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»