我有一个linq查询,它在数组或ID列表上用作OR。这是代码:
现在,下面的代码正在工作,就好像任何一个导师具有Subject1或Subject2一样,如果其中一个导师具有其中之一,则它将列出该列表,我想获取两个都包含的记录或导师列表。
query = query.Where(x => x.TutorSubjects.Any(q => q.SubjectId.HasValue && filter.Subjects.Contains(q.SubjectId.Value)));
我想将其转换为“和”条件,它应该像在Filter.Subjects中指定的列表和所有ID一样工作。
我尝试添加一些在Google上给出的示例,但没有得到预期的结果。我是LINQ和EF的初学者。请帮我。
由于Google在几篇文章中都提到过,因此不确定Contains是否会起作用。
您可以使用.All()
:
query = query.Where(x => x.TutorSubjects.All(q => q.SubjectId.HasValue && filter.Subjects.Contains(q.SubjectId.Value)));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句