LINQ到SQL - 多运行时所子句

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

我试图做到这一点,但只有我第一次在查询运行时,习惯条款。

这需要对面向.NET 3.5,因此在WhereIf 4.0是不可用的。

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));
}
c# linq-to-sql where-clause dynamic-linq
2个回答
3
投票
  if (!string.IsNullOrEmpty(reference))
        query = query.Where(tb => tb.Reference = reference));

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(...)
© www.soinside.com 2019 - 2024. All rights reserved.