我正在尝试完成此操作,但只有在查询运行时才会使用我的第一个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));
}
答案 0 :(得分:3)
if (!string.IsNullOrEmpty(reference))
query = query.Where(tb => tb.Reference = reference));
答案 1 :(得分: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(...)