Ich versuche, Linq mit mehreren Where-Klausel zu schreiben und Where-Klausel enthält weiter inline wenn Bedingungen.Linq mehrere Where-Klausel mit If-Bedingung
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();
Dies, wenn die Bedingung ausführt (DateTime.UtcNow> = s.MeetingStartTime & & DateTime.UtcNow < = s.MeetingStopTime), auch wenn MeetingStat == null.
where MeetingStat == null || MeetingStat==5 ? (DateTime.UtcNow >= s.MeetingStartTime && DateTime.UtcNow <= s.MeetingStopTime) : s.Status== MeetingStat
Wenn ich entfernen diese ..
MeetingStat==5 ? (DateTime.UtcNow >= s.MeetingStartTime && DateTime.UtcNow <= s.MeetingStopTime) :
Es funktioniert. Aber ich wollte diese
if (MeetingStat==5)
(DateTime.UtcNow >= s.MeetingStartTime && DateTime.UtcNow <= s.MeetingStopTime)
else
s.Status== MeetingStat.
zu überprüfen, um zu schreiben, was falsch mache ich?
„funktioniert nicht“ keine Bedingung ist, dass wir mit Ihnen helfen könnten. Bitte posten Sie die Fehlermeldung. – nvoigt
Redigierte meine Frage. –
, wenn die Bedingung dies ausführt (DateTime.UtcNow> = s.MeetingStartTime && DateTime.UtcNow <= s.MeetingStopTime), selbst wenn MeetingStat == null ist. –