Код: Выделить всё
private List Example2()
{
var query1 =
from c in _context.Customers
let custPurchases = _context.Purchases.Where(p => p.CustomerId == c.Id)
where custPurchases.Any(x => x.Price > 500)
select c.Name;
return query1.ToList();
}
System.InvalidOperationException: запрос содержит проекцию 'c => DbSet()
.Where(p => p.CustomerId == c.Id)' типа 'IQueryable'. Коллекции в окончательной проекции должны иметь тип IEnumerable, например List. Рассмотрите возможность использования ToList или другого механизма для преобразования IQueryable или IOrderedEnumerable в IEnumerable.
Почему EF Core пытается выполнить этот код на стороне клиента, а не на сервере (базе данных)? Где EF Core сталкивается с проблемой во время трансляции IQueryable в SQL?
P.S.
LINQPad 8 по умолчанию легко выполняет этот код, но это LINQ-to-SQL:

Может быть, вы можете предоставить некоторую литературу или ссылки, чтобы глубже изучить мир дерева выражений?
Я использую поставщика SQL Server в LinqPad.
Строка подключения: «Data Source=.;Integrated Security=SSPI;TrustServerCertificate=true;app=LINQPad».
Подробнее здесь: https://stackoverflow.com/questions/797 ... ate-to-sql
Мобильная версия