У меня есть объект инвентаризации, который имеет тип IQueryable.Когда я использую linq для запуска инвентаризации.Count (), создается следующий SQL-запрос (я использовал регистратор структуры сущностей, чтобы увидеть фактический производимый запрос):
SELECT Count(*)
FROM Inventory
У меня есть другой оператор linq, который принимает тот же самыйОбъект инвентаризации и запускает на нем следующую команду:
inventory.Select(x => x.Id).Distinct().Count();
И этот производит SQL-запрос:
SELECT Id, name, quantity, cost
FROM Inventory
Он не использует синтаксис подсчета SQL.Зачем?Если первый оператор linq создает оптимизированный SQL-запрос, почему этот создает неэффективный?