Как DBContext работает с несколькими сеансами пользователя в C # - PullRequest
1 голос
/ 16 апреля 2019

У меня есть проект веб-приложения MVC плюс проект библиотеки классов.Сейчас я пытаюсь реализовать транзакции Entity Framework.Поэтому для этого я решил использовать шаблон Singleton, где я могу использовать один объект DbContext, доступный по всей транзакции.Но позже я обнаружил, что шаблон Factory & UoW более подходит, чем Singleton.Но у меня есть несколько вопросов, и я пока не нашел ответов в Интернете.

  1. Когда у нас есть один DbContext для всего проекта с использованием шаблона Factory & UoW, что произойдет, если более чем один пользователь попытаетсявыполнить ту же операцию.Будут ли они работать с одним и тем же DbContext, или каждому пользователю будет предоставлен уникальный DbContext для работы в пределах их транзакции ??
  2. Если количество пользователей работает с одним и тем же DbContext в количестве транзакций, Как управлять параллелизмом??

    Будет очень здорово, если вы поможете мне ответить на мой вопрос.

1 Ответ

0 голосов
/ 16 апреля 2019
  1. Вам не нужен один объект DbContext, по замыслу его следует создавать при каждом запросе.

  2. Для удаления объекта выберите использование блока или, если вы используете внедрение зависимостей, оно будет разрешено контейнерами внедрения зависимостей / IoC.

  3. О параллелизме Параллелизм в Entity Framework :

Entity Framework по умолчанию поддерживает оптимистичный параллелизм. EF сохраняет данные объекта в базу данных, предполагая, что эти данные не были изменены с момента загрузки объекта. Если обнаруживается, что данные изменились, возникает исключение, и вы должны разрешить конфликт, прежде чем пытаться сохранить его снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...