我使用实体框架4和linq / lamda表达式。我确定这是一个简单的,但我试图用数组查询集合,但获取包含所有数组值的记录。
基本上我正在做的是这个
var records = collection.where(x.classifications.Any(y=> Array.Contains(y.ClassificationID))).ToList()
这在某种意义上起作用,它返回包含任何数组值的记录,但是如何只获取包含数组中所有值的记录。
希望有意义
编辑:
我将下面的评论标记为答案,因为我必须在我的查询中使用ALL来使其工作,但是我还必须稍微重新编写我的查询。这就是我最终拥有的......
var records = collection.Where(x=> Array.All(c=> x.Classifications.Select(l=>l.ClassificationID).Contains(c)))
答案 0 :(得分:0)
如何使用All
代替Any
?
var records = collection.Where(x => x.classifications.All(y => Array.Contains(y.ClassificationID)))
.ToList()