Это, вероятно, довольно тривиально, но .... У меня довольно сложный запрос linq, который я поместил в функцию IQueryable, которую я хотел бы повторно использовать в проекте.Но когда я использую это в выборе, я получаю «System.Linq.IQueryable`1 [LINQPad.User.Orders] Foo (System.Guid) не имеет перевода в SQL»: (очень упрощенно, чтобы показать, что япосле)
void Main()
{
(from e in Clients
select new {
e.CompanyName,
Orders = Foo(e.Id).Count()
}).Take(20).Dump();
}
IQueryable<Orders> Foo(Guid clientId)
{
return Orders.Where(e => e.ClientId.Equals(clientId));
}
Не работает, но работает следующее:
void Main()
{
(from e in Clients
select new {
e.CompanyName,
Orders = Orders.Where(f => f.ClientId.Equals(e.Id)).Count()
}).Take(20).Dump();
}
Можно ли переписать запрос без переписывания Foo?