Я играл с левыми соединениями в linq и обнаружил, что необходимо использовать DefaultIfEmpty()
, чтобы изменить соединение с inner
на left
.
Глядя на тип возвращаемого значения DefaultIfEmpty()
, я стал беспокоиться с точки зрения производительности, поскольку вижу, что он возвращает IEnumerable
, который, как мы знаем, кэширует данные локально ,В моем сценарии я продолжаю обрабатывать данные, оставленные присоединением, и в идеале хотел бы вместо этого сохранить тип как IQueryable
, однако, когда я развернул решение в своей среде разработки, я был удивлен, увидев нелогичный /минимальное влияние на производительность.
Почему DefaultIfEmpty()
не оказывает существенного влияния на производительность, или я неправильно понимаю ситуацию?
Редактировать: Ниже мой код: