Должен ли текст данных LINQ храниться в request.items для веб-приложений? - PullRequest
2 голосов
/ 06 августа 2009

Должен ли текст данных LINQ храниться в request.items для веб-приложений?

1 Ответ

2 голосов
/ 08 августа 2009

Нет, ИМО. В частности, я довольно чист, поэтому я не думаю, что мой пользовательский интерфейс должен иметь что-либо , связанное с доступом к данным. Это работа класса репозитория. Класс репозитория также не должен иметь ничего общего с http-запросом.

Таким образом, при разделении интересов единственный логический ответ здесь - «нет».


Re быть дорогим (комментарии); на самом деле он получает стоимость, чем дольше вы его используете:

  • объект / личность трекер будет медленно накапливать каждую уникальную запись, которую вы выбираете
  • отслеживание изменений имеет больше работы для мониторинга
  • у вас гораздо больше шансов на устаревшие (устаревшие) записи (получение неправильных данных - определенная стоимость)

И, позволяя ему жить за пределами DAL, вы также должны беспокоиться о многопоточности (это особенно верно для веб-запросов, где вы можете получить все сортов интересных комбинаций запросов для одного и того же сессия).

LINQ-to-SQL не предлагает много кеша; он имеет ограниченную поддержку для поиска идентификаторов при коротком замыкании в диспетчере идентификации (поэтому, если вы запросите Single(x=>x.Id == 12345), и он увидит запись 12345, он не попадет в базу данных). Тем не менее, большую часть времени он попадет в базу данных. И что касается базы данных, одной из самых больших затрат является стоимость новых соединений; что очень эффективно (для веб-приложений) смягчается пулами соединений на SqlConnection.

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