我有本地的記錄Id集合(整數)。Linq to SQL問題
我需要檢索有子女的記錄,當地收集IDS中的每一個記錄。
這裏是我的查詢:
public List<int> OwnerIds { get; private set; }
...
filteredPatches = from p in filteredPatches
where OwnerIds.All(o => p.PatchesOwners.Select(x => x.OwnerId).Contains(o))
select p;
我收到此錯誤:
Local sequence cannot be used in Linq to SQL implementation of query operators except the Contains() operator.
我明白。所有()不是由LINQ到SQL支持,但有什麼辦法做我想做的事情?
「包含運算符除外」。 – 2010-03-26 20:33:58
另外 - 爲什麼不在「in」中超過1000個項目?我做了這麼多次沒有後果。 – 2010-03-26 21:07:11
@DavidB - 不知道包含運算符。這就是爲什麼我說「我不知道一種方式......」,而不是「不」。至於超過1,000項我們實際測試過的項目,並發現在某些情況下,您的查詢性能將會下降。如果您的項目超過1,000個,則可以通過將其分解爲2個或更多個查詢來獲得更好的查詢性能。 – JMarsch 2010-03-26 22:40:40