Как я могу убедиться, что мои запросы LINQ выполняются при вызове в моем DAL, а не с задержкой?

У меня есть DAL, который состоит из нескольких методов, которые выполняют запросы LINQ к моей базе данных.

Как мне убедиться, что перед возвратом скажем IEnumberable или что-то подобное из базы данных, я гарантирую, что запрос LINQ выполненthen, не каким-то отложенным способом только для выполнения при использовании результата?

Я знаю, что могу вызвать .ToList () для моего результата в моих методах, чтобы заставить его выполнить, но это лучший способ?

 Kev18 июн. 2009 г., 17:15
Почему вы не хотите отсроченного исполнения?

Ответы на вопрос(1)

Решение Вопроса

призваниеToList или жеToArray действительно, это лучший способ заставить его выполнить и получить всю последовательность (см. комментарий Randolpho ниже для других методов, которые будут принудительно выполнять для отдельных элементов последовательности).

Есть ли конкретная причина, по которой вы хотели бы избежать отсрочки?

 18 июн. 2009 г., 17:08
Не забывайте First (), Single () или FirstOrDefault () или SingleOrDefault ()
 21 дек. 2009 г., 07:36
мне было интересно, принудительно ли .irstOrDefault и подобные методы вызывают выполнение запроса linq? просто хотел подтвердить это ...
 18 июн. 2009 г., 17:08
Очень верно, но я думаю, что они хотели получить всю последовательность.
 21 дек. 2009 г., 12:46
@ Erx_VB.NExT.Coder - Да, методы, которые Рандольфо упоминает выше в своем комментарии, принудительно выполняют.

Ваш ответ на вопрос