Что лучше: повторно использовать контекст System.Data.Linq.DataContext или избавиться от него как можно скорее? - PullRequest
0 голосов
/ 15 августа 2011

Если я использую SqlConnection, очевидно, лучшая практика - избавиться от него как можно скорее и позволить пулу соединений обрабатывать детали.Должен ли я следовать той же схеме, когда я использую System.Data.Linq.DataContext?

Должен ли я создать свой контекст один раз и передать его своим методам, или я должен получить строку подключения из моего файла конфигурации исоздавать контексты несколько раз и сохранять при передаче параметров?

Редактировать: Полезная ссылка о картах идентификации: Архитектура LINQ To SQL Applications, часть 7

1 Ответ

2 голосов
/ 15 августа 2011

Вы должны хранить контекст данных только столько времени, сколько необходимо для выполнения операции.

Причина этого в том, что он использует нечто, называемое Identity Map, так что каждый раз, когда вы выбираете, скажем, customer 1, вы получаете один и тот же объект обратно. Это означает, что он содержит много ссылок и со временем будет потреблять все больше памяти, и эти результаты будут становиться все более устаревшими.

В случае веб-приложения обычно создается одно на запрос, а класс DataContext оптимизируется для быстрого создания.

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