У меня есть две таблицы
School
ID Name
1 School1
2 School2
Student
ID SchoolID IsAStudent IsATeacher
1 1 1 0
2 1 1 0
3 2 1 0
4 2 0 1
public class School
{
public int ID {get;set;}
public string Name {get;set;}
}
У меня есть List<School> school= new List<School>();
Ввод:
School s1 = new School() { ID =1 ,Name ="School1"};
School s2 = new School() {ID= 2, Name = "School2"};
school.Add(s1);
school.Add(s2);
Этот список содержит школу с Идентификаторы 1 и 2.
Ожидаемый результат:
Мне нужно проверить, есть ли хотя бы в одной из школ учитель.
В нашем примере, поскольку School1 не имеет учителя, я должен получить true из следующей функции:
public bool IsTeacherNotPresentAtleastInOneSchool(List<School> school)
{
var a = (from b in school
join c in _studentEntity.GetAll()
on b.ID equals c.SchoolID
where c.IsATeacher == false
select b).ToList();
if(a.Count >0)
return true;
else
return false;
}
Хотя приведенный выше вариант использования будет пройти, a.Count вернет 3 записей, что приведет к сбою одного варианта использования ниже.
. Предположим, у меня только одна школа с School2 , тогда в таблице Student будет 2 строки - одна строка как студент с ID 3, а другая как учитель с ID 4.
Даже в этой ситуации я получу a.Считайте как 1, что неверно, поскольку мое постановление задачи: « Если по крайней мере одна школа, в которой нет учителя, возвращает true ». Как мне это решить?