Вопрос по c#, delayed-execution, linq-to-sql, linq – Как я могу убедиться, что мои запросы LINQ выполняются при вызове в моем DAL, а не с задержкой?

8

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

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

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

Почему вы не хотите отсроченного исполнения? Kev

Ваш Ответ

1   ответ
13

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

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

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

Похожие вопросы