gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 23:27:54 24 4
gpt4 key购买 nike

我在 MVC Controller 中有一个 Action

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

现在,如果 FromDateToDate 为空,那么我将得到 QueryData 计数为零。但我需要所有记录。所以谁能告诉我怎样才能得到预期的结果。虽然 FromDate & ToDate 具有值(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<=ToDate))).ToList();

如果 FromDateToDate 等于 NULL,它不会根据 s.TEST_DATE.Value 检查它们

关于c# - 如何在linq where条件中传递可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33251377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com