параметры динамического запроса linq - PullRequest
0 голосов
/ 03 мая 2011

У меня есть форма, которую я сериализирую в объект json, который выглядит следующим образом:

Fruit: Apple,
StrawberyParam: "test",
AppleParam: 1,
PeachParam: 3,
Car: Porsche
BugattiParam:3,
PorscheParam: "gas",
ToyotaParam: "go",
AnotherParam: "test1"

Обычно пользователь выбирает фрукт и машину, а параметры описаны в других свойствах.

Я думаю о том, чтобы написать различные предложения where и объединить их для создания строки, а затем применить к ней .ToList следующим образом:

StrawberryWhere = ....
AppleWhere = ....
PeachWhere = ....
PorscheWhere = ....
.....

И затем написать это:

MyQuery = fromClause + switch based on Fruit and Car selected
          (ie. AppleWhere + PorscheWhere) + selectClause;
MyQuery.ToList();

Это как это делается?Я использую linq-to-sql, и я не очень знаком с этим фреймворком, поэтому спасибо за предложения.

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Вы не будете использовать строки, вы будете делать что-то вроде этого:

Expression<Func<TSource, bool>> appleWhere = x => x.Fruit == Fruits.Apple;
Expression<Func<TSource, bool>> porscheWhere = x => x.Car == Cars.Porsche;
// ...

var result = jsonObjects.Where(appleWhere).Where(porscheWhere).ToList();
0 голосов
/ 03 мая 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...