我有两张桌子,医生和DoctorShifts,两张桌子之间的关系是一个(医生)到很多(DoctorShifts)。
在DoctorShifts中,我为每位工作的医生保存了一周的日子。
我需要的是显示今天工作的医生列表,我尝试了以下表达式,但它不起作用:
IQueryable<Doctor> TodayDoctorsQuery = _context.Doctors.Where(s => s.DoctorShifts.Where(s2 => s2.DayOfTheWeek == _todayNumber) != null);
错误是:
无法比较类型的元素&#39; System.Collections.Generic.IEnumerable`1 [[MedCare_Software.EDM.DoctorShift,MedCare-Software,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]&# 39 ;.仅支持基本类型,枚举类型和实体类型。&#34;}
我怎样才能获得今天有效的医生名单?
答案 0 :(得分:4)
内部where子句返回IEnumerable<DoctorShift>
,无法将其与null进行比较。
无论如何,您最好使用Any
,例如:
var TodayDoctorsQuery = _context.Doctors.Where(
s=> s.DoctorShifts.Any(s2 => s2.DayOfTheWeek == _todayNumber));
并确保DayOfTheWeek
和_todayNumber
属于同一类型。