我想通過一個lambda表達式來實現我的EF查詢中的「IN」條款如下:的LINQ表達式節點類型「調用」不支持LINQ到實體
/*lambda expression to evaluate: status in[a, b, c...n]*/
_IN myIN = (allStatus, status) =>
{
bool lambdaResult = false;
foreach (int s in statuses)
{
if (status == s)
{
lambdaResult = true;
break;
}
}
return lambdaResult;
};
result = (from v in _entity.CAVouchers
join vs in _entity.CAVoucherStatus.Where(vs => (myIN(statuses, vs.VoucherStatusId) == true)) on v.VoucherStatusId equals vs.VoucherStatusId
join vsr in _entity.CAVoucherStatusReason on v.VoucherStatusReasonId equals vsr.VoucherStatusReasonid
where v.CyberAgent.CAID == caid
select new ACPVoucher()
{
...
}).ToList();
這是扔由於「where」條件導致「LINQ表達式節點類型'Invoke'在LINQ to Entities中不受支持」錯誤。 基本上我需要的是「哪裏statusId在[1,2,3]」類的子句中。
什麼是失敗?...有關如何做到這一點的任何提示?應用於通用列表時,同樣的方法適用於我。
感謝