Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在linq where条件中传递可选参数_C#_Entity Framework_Linq_Asp.net Mvc 4 - Fatal编程技术网

C# 如何在linq where条件中传递可选参数

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 &&

我在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 && (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();                 
}