Я пытаюсь записать динамический запрос linq как:
var q = obj.Where("message.Contains('hello')");
Я знаю, что это работает на
var q = obj.Where(o => o.message.Contains('hello'));
но я ищу динамическое linq решение
Спасибо.
Found my answer now.
var q = obj.Where("message.Contains(@0)", "hello");
Я знаю, что это не то, что вы ищете, но это просто вопрос, который следует рассмотреть:
В зависимости от того, сколько различных видов операций вы ожидаете выполнить, я бы создал оператор switch для обработки этого.
В качестве примера, некоторый псевдокод с использованием перечисления:
(OperationType - это Enum, если требуется)
private object example(OperationType optype, Object obj, String match)
{
var q;
switch (optype)
{
case OperationType.Contains:
q = obj.Where(o => o.message.Contains(match));
break;
case OperationType.EndsWith:
q = obj.Where(o => o.message.EndsWith(match));
break;
case OperationType.StartsWith:
q = obj.Where(o => o.message.StartsWith(match));
break;
}
return q;
}