Как вставить строковое условие в запрос linq - PullRequest
1 голос
/ 18 марта 2011

Я хочу применить несколько условий в моем запросе linq.Мой сценарий заключается в том, что я выбираю записи из таблицы, и если пользователь выбирает некоторые критерии, применяет условие в соответствии с.Так что я хочу сделать

var linq = from p in Post select p
//now if user apply that condition
string id = "1"; //Here 1 is what user inputs
string condition = where p.id == id 
//then it executes query like this 
linq = from p in Post condition select p

Могу ли я сделать это в linq, если да, то как

Ответы [ 2 ]

4 голосов
/ 18 марта 2011
var linq = from p in Post select p;

//now if user apply that condition
string id = "1"; //Here 1 is what user inputs

if (!String.IsNullOrEmpty(id))
{
    linq = linq.Where(p => p.id == id);
}

return linq.ToList(); // or whatever you want to do with it at this point
1 голос
/ 18 марта 2011

Возможно, вы захотите взглянуть на динамический linq или в зависимости от того, насколько сложным вы хотите сделать условие, используя деревья выражений

Вы можете попробовать:

string id = "1";
string condition = "p.id == " + id;
var linq = from p in Post 
           where (condition) 
           select p;

или с лямбдой:

string id = "1";
string condition = "p => p.id == " + id;
var linq = Post.Where(condition).SingleOrDefault();

См. Следующее:

Пост Скотта Гу на Dynamic Linq

Запрос сущности с помощью LINQ с использованием имени поля Dyanmic

Основы деревьев выражения Linq

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...