【发布时间】:2010-09-16 09:09:30
【问题描述】:
这可能很简单,但是.... 我有一个非常复杂的 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 的情况下重写查询?
【问题讨论】:
标签: c# linq-to-sql