小编Nat*_*lol的帖子

添加额外的linq where子句基于变量

我正在尝试向linq查询添加其他where子句,具体取决于传递给函数的变量结果.

var allFeedback = 
    from f in _unitOfWork.Feedback.All()
    join b in _unitOfWork.Bookings.All() on f.CourseBookingID equals b.CourseBookingID
    join cb in _unitOfWork.CourseBookings.All() on f.CourseBookingID equals cb.CourseBookingID
    where b.SiteID == siteID && b.Date >= fromDate && b.Date <= to && b.CancelledID == null
    select f;

if (courseID > 0)
{
    allFeedback.Where(f => f.CourseBooking.CourseID == courseID);
}

if (facilitatorID == 0)
{
    allFeedback.Where(f => f.CourseBooking.FacilitatorID == null);
}
else if (facilitatorID > 0)
{
    allFeedback.Where(f => f.CourseBooking.FacilitatorID == facilitatorID);
}

allFeedback.ToList();
Run Code Online (Sandbox Code Playgroud)

我想将where子句添加到原始查询"allFeedback",但是当执行查询时,将忽略其他子句.

这可能吗?

c# linq ienumerable asp.net-mvc-4

2
推荐指数
1
解决办法
133
查看次数

标签 统计

asp.net-mvc-4 ×1

c# ×1

ienumerable ×1

linq ×1