Linq to SQL - несколько предложений where во время выполнения - PullRequest
0 голосов
/ 08 декабря 2010

Я пытаюсь выполнить это, но только мое первое условие where используется при выполнении запроса.

Это необходимо для .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));
}

Ответы [ 2 ]

3 голосов
/ 08 декабря 2010
  if (!string.IsNullOrEmpty(reference))
        query = query.Where(tb => tb.Reference = reference));
0 голосов
/ 08 декабря 2010

Попробуйте

Просто сделайте это в «одном»

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

или, как говорит Айвс, выполните:

...