我有以下Linq表达式,它可以自行运行:
var query = from c in db.crawljobs
where c.fk_members_id == uid
select c;
现在我想在此表达式中添加其他两个函数的结果。
public int GetNumCrawlResults(int jobId)
{
return SomeInt();
}
public int GetNumPagesCrawled(int jobId)
{
return SomeInt();
}
所以我尝试过这样的事情:
var query = from c in db.crawljobs
from cr in GetNumCrawlResults(c.id)
from cp in GetNumPagesCrawled(c.id)
where c.fk_members_id == uid
select c;
我收到错误:
LINQ to Entities无法识别方法' Int32 GetNumCrawlResults(的Int32)'方法,这个方法不能 翻译成商店表达。
答案 0 :(得分:1)
您可以这样做,但在调用自己的函数之前必须使用.ToList()
。您调用的函数必须在SQL中有效才能使Linq to Entities正常工作。但是,如果你先.ToList()
,Linq to Objects会处理这个问题。