0

我正在尝试完成此操作,但只有在查询运行时才使用我的第一个 where 子句。

这需要用于 .Net 3.5,因此 4.0 中的 WhereIf 不可用。

var query =
    from tb in dataContext.TableOne
    where tb.DateTimeCreated >= fromDate && 
        tb.DateTimeCreated <= toDate.AddDays(1) 
    select tb;

if (!string.IsNullOrEmpty(reference))
{
    query.Where(tb => tb.Reference = reference));
}
4

2 回答 2

3
  if (!string.IsNullOrEmpty(reference))
        query = query.Where(tb => tb.Reference = reference));
于 2010-12-08T13:15:56.840 回答
0

尝试

只需在“一个”中执行

var query = (from tb in dataContext.TableOne
                      where (tb.DateTimeCreated >= fromDate && tb.DateTimeCreated <= toDate.AddDays(1)) && (string.IsNullOrEmpty(reference) || tb.Reference == reference)
                      select tb
               );

或者正如艾夫斯所说,做:

query = query.Where(...)
于 2010-12-08T13:17:14.900 回答