C# 如何在linq where条件中传递可选参数
我在MVC控制器中有一个动作C# 如何在linq where条件中传递可选参数,c#,entity-framework,linq,asp.net-mvc-4,C#,Entity Framework,Linq,Asp.net Mvc 4,我在MVC控制器中有一个动作 public ActionResult ExportExcel(string ReportType,DateTime? FromDate,DateTime? ToDate) { var query = UnitOfWork.RepoTestResAnalysis.GetAll(); var QueryData = query.Where(s => s.MSO == ms && (FromDate != null &&
public ActionResult ExportExcel(string ReportType,DateTime? FromDate,DateTime? ToDate)
{
var query = UnitOfWork.RepoTestResAnalysis.GetAll();
var QueryData = query.Where(s => s.MSO == ms && (FromDate != null && (s.TEST_DATE.Value >= FromDate)) && (ToDate!=null && (s.TEST_DATE.Value<=ToDate))).ToList();
}
public ActionResult ExportExcel(字符串报告类型,DateTime?FromDate,DateTime?ToDate)
{
var query=UnitOfWork.RepoTestResAnalysis.GetAll();
var QueryData=query.Where(s=>s.MSO==ms&&(FromDate!=null&&(s.TEST_DATE.Value>=FromDate))&&(ToDate!=null&(s.TEST_DATE.Value)根据您提供的信息
更改下面的语句:
var QueryData = query.Where(s => s.MSO == ms && (FromDate != null && (s.TEST_DATE.Value >= FromDate)) && (ToDate!=null && (s.TEST_DATE.Value<=ToDate))).ToList();
var QueryData=query.Where(s=>s.MSO==ms&&(FromDate!=null&(s.TEST_DATE.Value>=FromDate))&(ToDate!=null&(s.TEST_DATE.Value s.MSO==ms&(FromDate==null|||(s.TEST_DATE.Value>=FromDate))&(ToDate==null||||)(s.TEST_DATE.Value您也可以像下面这样做:
将QueryData分配更改为:
var QueryData = query.Where(s => s.MSO == ms &&
(s.TEST_DATE.Value >= (FromDate ?? DateTime.MinValue)) &&
(s.TEST_DATE.Value <= (ToDate ?? DateTime.MaxValue))).ToList();
var QueryData=query.Where(s=>s.MSO==ms&&
(s.TEST_DATE.Value>=(FromDate??DateTime.MinValue))和
(s.TEST_DATE.Value我知道这是一个老问题,但如果我的代码能帮助任何人,我会很高兴。
我认为以下实现将是简单易懂的:
public ActionResult SomeMethod(string ReportType, DateTime? FromDate, DateTime? ToDate)
{
var query = UnitOfWork.RepoTestResAnalysis.GetAll();
var QueryData = query.Where(x => x.DateField >= (FromDate ?? x.DateField) && x.DateField <= (ToDate ?? x.DateField).ToList();
}
public ActionResult SomeMethod(string ReportType,DateTime?FromDate,DateTime?ToDate)
{
var query=UnitOfWork.RepoTestResAnalysis.GetAll();
var QueryData=query.Where(x=>x.DateField>=(FromDate??x.DateField)&&x.DateField您的帖子非常宝贵。我有一个非常复杂的查询,需要检查可为null的变量,我得到异常,因为我用AND检查它们的null条件(如果a!=null和a.METHODS(),就好像是if子句一样)但我需要将它们视为OR。如果变量为null,则不需要检查其子句的其余部分,因为它不会向查询添加任何筛选器,如果它不是null,则其子句会进行筛选。谢谢:)
public ActionResult SomeMethod(string ReportType, DateTime? FromDate, DateTime? ToDate)
{
var query = UnitOfWork.RepoTestResAnalysis.GetAll();
var QueryData = query.Where(x => x.DateField >= (FromDate ?? x.DateField) && x.DateField <= (ToDate ?? x.DateField).ToList();
}