我在数据库中有2个重要的日期字段。

startTime和goTime

我喜欢创建其中一个参数可能为空的自定义查询,请参见我的示例

public List<Type> GetAll( DateTime startTime, DateTime goTime )
{
List<Type> getResultBetween =

   (from i in DB.TABLENAME
    where i.startTime >= startTime && i.goTime == ANYTHING
    select i).ToList();
    return getResultBetween;
}


所以现在的目标是,即使没有定义goTime,我也可以达到给定的startTime。
如果我定义goTime并让Starttime为空,它也应该工作。抢断应该让我全力以赴。

谢谢

最佳答案

尝试使用空值类型,并显式建立查询,例如:

public List<Type> GetAll(DateTime? startTime, DateTime? goTime )
{
    IQueryable<Type> query = DB.TABLENAME;
    if (startTime != null)
    {
        query = query.Where(i => i.startTime >= startTime.Value);
    }
    if (goTime != null)
    {
        query = query.Where(i => i.goTime == goTime.Value);
    }
    return query.ToList();
}

关于c# - LINQ查询参数可以为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1624631/

10-12 13:43