Как: один вызов базы данных на запрос в ASP.NET MVC с использованием L2S - PullRequest
1 голос
/ 15 апреля 2011

Как получить все данные, необходимые для обработки запроса, за один вызов в БД. Также я хочу знать, как мне это сделать, если моей главной странице также требуются данные из базы данных? Я знаю, что это уточнено в Передача данных на мастер-страницу в ASP.NET MVC . Но я думаю, что сделаю несколько звонков в базу данных. Пожалуйста, дайте мне знать, если это не так.

UPDATE
+1 и спасибо всем ответчикам / комментаторам за их взгляды и советы.

Ответы [ 3 ]

3 голосов
/ 15 апреля 2011

Я должен согласиться с другими ответами, чем вы обосновываете это?

NHibernate может пакетировать SQL-операторы, используя FUTURES, прочитали ли вы сообщение в блоге ?

Тем не менее, я не уверен, как вы объедините все возможности для всех ваших просмотров на вашем сайте. Если вы придумали решение, я бы с удовольствием его увидел.

Это будет непросто, и показать небольшой пример кода невозможно.

3 голосов
/ 15 апреля 2011

Я думаю, вы можете запутать сценарии one session per request и SELECT N + 1. Совершенно нормально иметь несколько обращений к базе данных, однако вы должны остерегаться, когда вам нужно выполнить один вызов базы данных для каждого элемента в списке. Это чаще всего встречается при использовании ленивых загруженных списков. Решение состоит в том, чтобы использовать нетерпеливое извлечение.

пс. Я думаю, что популярным решением для получения данных на главной странице является использование Html.RenderAction на главной странице. Таким образом, вам не нужно беспокоиться о проблемах с главной страницей (например, о навигации) повсюду.

2 голосов
/ 15 апреля 2011

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

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