Linq 用数组查询MVC集合

Linq 用数组查询MVC集合,linq,frameworks,entity,Linq,Frameworks,Entity,Im使用实体框架4和linq/lamda表达式。我确信这很简单,但我试图用数组查询集合,但得到包含所有数组值的记录 基本上我做的就是这个 var records = collection.where(x.classifications.Any(y=> Array.Contains(y.ClassificationID))).ToList() 从某种意义上讲,它返回包含任何数组值的记录,但如何仅获取包含数组中所有值的记录 希望这是有道理的 编辑: 我将下面的评论标记为答案,因为我必须在我的

Im使用实体框架4和linq/lamda表达式。我确信这很简单,但我试图用数组查询集合,但得到包含所有数组值的记录

基本上我做的就是这个

var records = collection.where(x.classifications.Any(y=> Array.Contains(y.ClassificationID))).ToList()
从某种意义上讲,它返回包含任何数组值的记录,但如何仅获取包含数组中所有值的记录

希望这是有道理的

编辑:

我将下面的评论标记为答案,因为我必须在我的查询中使用所有内容才能使其工作,但是我也必须稍微重新编写我的查询。这就是我最终拥有的

  var records = collection.Where(x=> Array.All(c=> x.Classifications.Select(l=>l.ClassificationID).Contains(c)))

使用
All
而不是
Any
怎么样

var records = collection.Where(x => x.classifications.All(y => Array.Contains(y.ClassificationID)))
                        .ToList()

我尝试过使用All,但它只返回分类为0(奇数)的记录。我认为我的问题看起来类似于@JamesBurton,那么为什么您确定您有条目,其中所有分类都包含在数组中?也许有些ClassificationID不在您的阵列中,因为我知道哪些记录在我的测试数据中有哪些ID,所以我现在正在控制传递哪些ClassID。我目前只传递数组中的2个值,以确保其正常工作。这仍然不能解释为什么所有返回的项目都只有0classifications@JamesBurton完全可以解释。如果项目没有分类,则其所有分类在array@JamesBurton感谢您的接受,抱歉误解了您的意图