私はリストを持っています:
List<Student> lstStudents = GetConditionalStudents();
別のリストがあります:
List<School> allSchools = dbContext.Schools.ToList();
すべての学校には生徒のリストがあります
public class School
{
///other properties
public List<Student> {get;set;}
}
私はこれを行うことを余儀なくされています:
List<School> schools = from p in allSchools
where p.LocationId==this.LocationId
where p.Students.Any(d=>lstStudents.Contains(d))
select p;
しかし、それは機能しません: エラーが発生します
unable to create a constant value for .. only primitive types
編集
これを行うことで機能させることができます:
List<int> integers = lstStudents.Select(s=>s.Id).ToList();
List<School> schools = from p in allSchools
where p.LocationId == this.LocationId
where p.Students.Any(d=>integers.Contains(d.Id))
select p;
しかし、私はそれを使用したくありません.2つ以上のIDを比較しなければならない状況があるので、2つ以上を別々primitive datatype List
にしてクエリで使用する必要があります. .
linqクエリで外部リストを直接使用する方法.??
私はこれを使用できません:
allSchools.Where(s=>s.LocationId==this.LocationId ||
lstStudents.Contains(s)).ToList();