linq中的If语句
是否可以在此linq查询中包含if语句…例如,如果viewModel.Sessionstateadminroot.CourseSearchPara==null不使用where子句,只需获取所有记录linq中的If语句,linq,Linq,是否可以在此linq查询中包含if语句…例如,如果viewModel.Sessionstateadminroot.CourseSearchPara==null不使用where子句,只需获取所有记录 viewModel.Courseroot = (from course in container.Courses where course.Description == viewModel.Sessionstateadm
viewModel.Courseroot = (from course in container.Courses
where course.Description == viewModel.Sessionstateadminroot.CourseSearchPara
orderby course.Name descending
select new Course_() { Name = course.Name, Description = course.Description, Guid = course.Guid, CourseID = course.CourseID }).Skip((int)skip).Take(take).ToList();
您可以使用
|
操作符:
viewModel.Courseroot = (from course in container.Courses
where viewModel.Sessionstateadminroot.CourseSearchPara == null
|| course.Description == viewModel.Sessionstateadminroot.CourseSearchPara
orderby course.Name descending
select new Course_() { Name = course.Name, Description = course.Description, Guid = course.Guid, CourseID = course.CourseID }).Skip((int)skip).Take(take).ToList();
由于|
运算符短路,如果第一部分为真,则第二部分将不会被计算
或者,您可以逐步构造查询:
IEnumerable<Course> query = container.Courses;
if (viewModel.Sessionstateadminroot.CourseSearchPara != null)
query = query.Where(course => course.Description == viewModel.Sessionstateadminroot.CourseSearchPara)
viewModel.Courseroot = query
.Select(course => new Course_() { Name = course.Name, Description = course.Description, Guid = course.Guid, CourseID = course.CourseID })
.Skip((int)skip)
.Take(take)
.ToList();
IEnumerable query=container.Courses;
if(viewModel.Sessionstateadminroot.CourseSearchPara!=null)
query=query.Where(课程=>course.Description==viewModel.Sessionstateadminroot.CourseSearchPara)
viewModel.Courseroot=query
.Select(course=>newcourse\({Name=course.Name,Description=course.Description,Guid=course.Guid,CourseID=course.CourseID})
.Skip((int)Skip)
.拿(拿)
.ToList();