Nat*_*lol 2 c# linq ienumerable asp.net-mvc-4
我正在尝试向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",但是当执行查询时,将忽略其他子句.
这可能吗?
是的它可能只做:
if (courseID > 0)
{
allFeedback = allFeedback.Where(f => f.CourseBooking.CourseID == courseID);
}
if (facilitatorID == 0)
{
allFeedback = allFeedback.Where(f => f.CourseBooking.FacilitatorID == null);
}
else if (facilitatorID > 0)
{
allFeedback = allFeedback.Where(f => f.CourseBooking.FacilitatorID == facilitatorID);
}
Run Code Online (Sandbox Code Playgroud)
您只是忘了将结果分配给变量.
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |