Динамический где в LINQ - PullRequest
       27

Динамический где в LINQ

2 голосов
/ 04 ноября 2010

Привет, у меня есть этот запрос LINQ:

var q =
    (from vr in Util.db.ValuationsRequests
     where vr.dtSubmitted != null
     select vr
     ).AsEnumerable<ValuationsRequest>();

Но я хочу выполнить поиск еще с 3 параметрами: paramValuationId (int), paramValue (логическое значение), paramTitle (строка).

Что-то вроде:

if (paramTitle != string.empty)
//add this field to the where

Но если paramTitle пуст, я не хочу его искать.

Как правильно это сделать?

Ответы [ 2 ]

5 голосов
/ 04 ноября 2010
string paramTitle = "hello";
var q =
    (from vr in Util.db.ValuationsRequests
     where vr.dtSubmitted != null 
       && ( paramTitle == "" || vr.paramTitle == paramTitle)
     select vr
     ).AsEnumerable<ValuationsRequest>();
2 голосов
/ 04 ноября 2010
var q =
(from vr in Util.db.ValuationsRequests
 where vr.dtSubmitted != null
 select vr
 ).AsEnumerable<ValuationsRequest>();

if(!string.IsNullOrEmpty(paramTitle))
   q = q.Where(p => p.ParamTitle == paramTitle);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...