带参数的linq查询,可以为空

Jac*_*ack 1 c# linq asp.net

我在db中有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;
}
Run Code Online (Sandbox Code Playgroud)

因此,即使没有定义goTime,我现在的目标是达到给定的startTime.如果我定义goTime并让Starttime为空,它也应该工作.Resare应该给我所有人直到getime.

谢谢

Jon*_*eet 9

尝试这样的事情,使用可空类型并明确地构建查询:

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();
}
Run Code Online (Sandbox Code Playgroud)