c# LinqDBContext 根据传递的参数在日期之间进行查询,或大或小。

问题描述 投票:0回答:1

我必须根据Dates passedParameters来过滤数据。StartDate, EndDate,默认值为null。

过滤:如果两个参数都是空的,则返回所有记录。

  1. 如果两个参数都是空的,就返回所有记录
  2. 如果开始日期已过,但结束日期未过,则返回开始日期之后的所有记录。
  3. 如果EndDate通过但不是开始日期,那么返回EndDate之前的所有记录。
  4. 如果两个Dates都通过了,那么返回日期之间的记录。

    var appointmentNoShow = _db.Appointments Where (x=> s.appointmentDate) ?? ).ToList()。

所以我需要单独的查询,或者我可以在一个查询中做一些条件。

c# asp.net-mvc-5 entity-framework-6
1个回答
0
投票

你需要写一系列的if语句来处理这个问题。

if(StartDate == SomeDate && EndDate == Somdate)
{
return ALL Records after start date but before enddate
}
else if(StartDate == SomeDate && EndDate == Null)
{
return all records after StartDate
}
else if(StartDate == null && EndDate == SomeDate )
{
return all records before EndDate
}
else
{
Return all records 
}

这是最基本的表达方式。当然,你可以用不同的方式来清理和使用条件,但这是一个最基本的例子,所以你可以随意调整它。

© www.soinside.com 2019 - 2024. All rights reserved.