Когда скомпилированный запрашивает, который возвращается, IQueryable выполняются?

Следующий только относится к языкам, которые имеют контролируемые исключительные ситуации, например, Java:

Иногда метод бросает контролируемую исключительную ситуацию, которую Вы знаете , не произойдет, например, некоторые API Java ожидают имя кодирования как строку и бросают UnsupportedEncodingException, если данное кодирование не будет поддерживаться. Но обычно я передаю литеральный "UTF-8", который я знаю, поддерживается так, я мог теоретически записать пустую выгоду там.

Вместо того, чтобы делать это (пустая выгода) я обычно выдаю универсальное исключение непроверенное, обертывающее "невозможное" исключение, или я даже объявляю класс ImpossibleException, который я бросаю. Поскольку моя теория о том состоянии ошибки, являющемся невозможным, могла бы быть неправильной, и в этом случае я не захочу, чтобы исключение глоталось.

5
задан Community 23 May 2017 в 11:56
поделиться

3 ответа

Он выполняется в строке 104 (когда вы вызываете ToList ()).

Скомпилированный query - это запрос, который транслируется в TSQL только один раз во время компиляции, а не каждый раз перед выполнением.

2
ответ дан 14 December 2019 в 13:41
поделиться

«В строке 104 при преобразовании ToList.»

Что ж, это неверный ответ. Мы вызываем делегат, хранящийся в переменной MyCompiledQuery в строке 101, которая возвращает результат скомпилированного запроса, а не сам запрос.

2
ответ дан 14 December 2019 в 13:41
поделиться

Это называется отложенным исполнением.
Вы можете прочитать об этом хороший пост здесь .

0
ответ дан 14 December 2019 в 13:41
поделиться
Другие вопросы по тегам:

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