【发布时间】:2015-04-24 19:57:42
【问题描述】:
我在一个名为 Invoice 的类中有这个方法:
public static Expression<Func<Invoice, bool>> IsAllocated()
{
return i => i.TotalAmountDue == i.GetAllocationsTotal();
}
我有一个这样的列表:
IQueryable<Invoice> invoices
我需要像这样过滤它(它是 Linq to Entity):
var filteredInvoices = invoices.Where(i => Invoice.IsAllocated());
在这一行中,我遇到了两个错误:
无法解析方法 ... 候选者是 .... 一个在 Enumerable 中,另一个在 Queryable 中。
还有:
无法将表达式类型
Expression<Func<Invoice,bool>>转换为 返回类型“布尔”
我尝试了很多我在 SO 中找到的东西,但都没有运气。有人可以告诉我这里缺少什么,或者至少,这两个错误中的哪一个是问题的根源?
【问题讨论】:
-
我会说下一个障碍将是
i.GetAllocationsTotal():-) -
@xanatos 你是 100% 正确的 :)
-
对于其他登陆这里的谷歌用户,请确保您在 lambda 中使用的是
==而不是=。
标签: c# lambda linq-to-entities