Создание статического Datacontext () или создание всякий раз, когда это необходимо.Что лучше и почему? - PullRequest
3 голосов
/ 06 июля 2011

У меня есть функция, и внутри нее я создаю DataContext() каждый раз, когда вызывается функция. Какова стоимость создания new DataContext(). Могу ли я создать static DataContext() и использовать его везде. Поскольку DataContext содержит полную запись всех изменений, когда метод SubmitChanges () завершается с ошибкой , есть ли способ удалить эти конкретные изменения из DataContext, если SubmitChanges() не удается. Мой вопрос, который лучше Creating static Datacontext() или Creating whenever its needed?

1 Ответ

6 голосов
/ 06 июля 2011

Эта тема обсуждалась довольно часто, и вам следует прочитать эту статью об управлении временем жизни DataContext. Короткий ответ: DataContext предназначен для использования в качестве единицы работы, обычно одного запроса. Объекты DataContext дешевы в создании, и для их создания не требуются дополнительные ресурсы базы данных.

Основная причина избегать общего экземпляра DataContext заключается в безопасности потоков и отслеживании изменений. Каждое изменение, которое вы вносите в объект репозитория, захватывается и транслируется в операции обновления / вставки / удаления при вызове SubmitChanges(). Эта функция выходит из строя при использовании одного объекта DataContext.

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