Есть ли способ сделать ITicketStore ограниченным?C#

Место общения программистов C#
Anonymous
Есть ли способ сделать ITicketStore ограниченным?

Сообщение Anonymous »

Я использую ITicketStore, как указано в этой статье. При этом DbContext создается всякий раз, когда требуется выполнить какие-либо операции с базой данных.
В моем коде вместо создания DbContext с помощью синтаксиса using() выполняется внедрение через конструктор. Все работало нормально, пока код не был запущен в эксплуатацию.
Начали появляться следующие исключения при увеличении трафика.
  • System.InvalidOperationException В этом контексте началась вторая операция. до завершения предыдущей операции.
  • Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException
Вероятно, это потому, что ITicketStore является одноэлементным и внедряет DbContext с использованием внедрения внедрения, который использовал один и тот же экземпляр DbContext в нескольких потоках.
Я изменил код для создания экземпляра DbContext с помощью метода(), и теперь он работает нормально.
Но я пытаюсь найти способ заставить DbContext работать путем внедрения через DI.

Подробнее здесь: https://stackoverflow.com/questions/651 ... ore-scoped

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