Ваш вопрос не ясен ... Я не уверен, как вы храните программы X, Y, Z?Я предполагаю, что это названия программ.
Вы можете определить отношение «многие ко многим» следующим образом:
public class LanguageSchool
{
public int LanguageSchoolId { get; set; }
public virtual ICollection<LanguageSchoolProgram> LanguageSchoolPrograms { get; set; }
}
public class LanguageSchoolProgram
{
public int LanguageSchoolProgramId { get; set; }
public string ProgramName {get; set;} // this is X, Y or Z
public virtual ICollection<LanguageSchool> LanguageSchools { get; set; }
}
И использовать Contains
для выбора школ с программами в списке:
string[] requiredPrograms = new string[] {"X", "Y", "X"};
var schoolsQueryable = dbContext.LanguageSchool.Where(
ls => requiredPrograms.contains(ls.LanguageSchoolProgram.ProgramName));
// if you don't want Queryable, then add ToList()