我想檢查int[]
陣列的長度。如果沒有在Where子句中使用Contains會導致錯誤:'ArrayIndex'在LINQ to Entities中不受支持
public List<Parent_Company> GetParentCompany(params int[] clientIds)
{
IEnumerable<Companie> ccs;
if (clientIds.Length == 0)
ccs = _xciRepository.GetAll<Companie>();
else if (clientIds.Length == 1)
ccs = _xciRepository.Find<Companie>(x => x.CustCompID == clientIds[0]);
else
ccs = _xciRepository.Find<Companie>(x => clientIds.Contains(x.CustCompID));
//-- more codes here
}
,我發現了以下錯誤:「的LINQ表達式節點類型‘ArrayIndex’不是在LINQ支持,以實體」
而且我懷疑這是在聲明其他導致問題,發現方法,即x => clientIds.Contains(x.CustCompID)
有沒有辦法解決這個問題?否則,我在linq中多次使用Contains。
感謝您的幫助。
問題不在於'Contains'與索引屬性'clientI DS [0]'。 – juharr
我想問你爲什麼用'.Find'代替更通用的'.Where'或'.Single'?爲什麼GetParentCompany不是'IQueryable'的擴展方法? –
@RobertMcKee,'Find'在這種情況下不是一個linq。之前有人在存儲庫中定義了此方法。我同意你的看法,它應該有不同的說法。 – Richard77