Я пытаюсь написать Linq с предложением multiple where и где предложение дополнительно содержит встроенные условия if.Linq multiple where clause with if condition
List<MeetingVM> students = (
from s in db.Meetings
where MeetingIsActive == null || s.IsActive == MeetingIsActive
where MeetingStat == null || MeetingStat == 5 ? (DateTime.UtcNow >= s.MeetingStartTime && DateTime.UtcNow <= s.MeetingStopTime) : s.Status== MeetingStat
where StartDate == null || (s.MeetingStartTime >= StartDate && s.MeetingStartTime <= EndDate)
where s.Status!=4
orderby s.MeetingStartTime ascending
select new MeetingVM
{
MeetingStartTime = s.MeetingStartTime,
MeetingStopTime = s.MeetingStopTime,
Alias = s.Alias,
MeetingSubject = s.MeetingSubject,
UserId = s.UserId,
Status=s.Status
}).ToList();
Это если условие исполняет (DateTime.UtcNow> = s.MeetingStartTime & & DateTime.UtcNow < = s.MeetingStopTime), даже если MeetingStat == NULL.
where MeetingStat == null || MeetingStat==5 ? (DateTime.UtcNow >= s.MeetingStartTime && DateTime.UtcNow <= s.MeetingStopTime) : s.Status== MeetingStat
Если я удалить это ..
MeetingStat==5 ? (DateTime.UtcNow >= s.MeetingStartTime && DateTime.UtcNow <= s.MeetingStopTime) :
Он работает. Но я хотел написать это, чтобы проверить
if (MeetingStat==5)
(DateTime.UtcNow >= s.MeetingStartTime && DateTime.UtcNow <= s.MeetingStopTime)
else
s.Status== MeetingStat.
Что не так я делаю?
«не работает» не условие, которое мы могли бы помочь вам. Отправьте сообщение об ошибке. – nvoigt
Отредактировал мой вопрос. –
если условие выполняет это (DateTime.UtcNow> = s.MeetingStartTime && DateTime.UtcNow <= s.MeetingStopTime), даже если MeetingStat == null. –