次のエラーを返す LINQ クエリがあります。
必要なのは、リストに ID がある BirthDate を持つすべてのクライアントを数えることだけです。クライアント ID のリストは膨大になる可能性があります (数百万のレコード)。
クエリは次のとおりです。
List<int> allClients = GetClientIDs();
int total = context.Clients.Where(x => allClients.Contains(x.ClientID) && x.BirthDate != null).Count();
このようにクエリを書き直すと、
int total = context
.Clients
.Count(x => allClients.Contains(x.ClientID) && x.BirthDate != null);
同じエラーが発生します。
また、別の方法で作成しようとしましたが、すべてのメモリを消費します:
List<int> allClients = GetClientIDs();
total = (from x in allClients.AsQueryable()
join y in context.Clients
on x equals y.ClientID
where y.BirthDate != null
select x).Count();