0

これを達成しようとしていますが、クエリの実行時に最初の where 句のみが使用されます。

これは for .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
               );

または Ives が言うように、次のようにします。

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