Как я могу назвать это выражение LinqKitвызовов в динамическом запросе Linq
public static Expression<Func<Transaction, string>> ExpressionOfStatusName
{
get
{
Expression<Func<Transaction, string>> status =
(transaction) => transaction.TransactionStatus.Name;
return status;
}
}
в динамическом запросе Linq (Linq в виде строки, используя System.Linq.Dynamic от Microsoft)
Это выражение хорошо работает в стандартном Linq запрос, как этот
Expression<Func<Transaction, string>> expressionOfStatusName = Transaction.ExpressionOfStatusName;
var ex = from transaction in context.Transaction.AsExpandable()
select expressionOfStatusName.Invoke(transaction)
Но когда я пытаюсь вызвать его из динамического запроса Linq, я получаю сообщение об ошибке «нет применимый метод„Invoke“не существует в типе«Expr ession`1 ' Я попытался добавить импорт linqkit в файл System.Linq.Dynamic, но он все еще не работает.
Я хочу быть в состоянии сделать что-то подобное
var ex = context.Transaction.AsExpandable()
.Select (transaction=>transaction)
.Select("new { test = expressionOfStatusName.Invoke(transaction)");
Спасибо за вашу помощь
Я уже использую MS Linq.Dynamic Я пытаюсь изменить источник, я пытаюсь изменить функцию FindMethod для вызова Метод LinqKit: 'INT FindMethod (Тип, строка имяМетод, BOOL staticAccess, Expression [] арг, из метода MethodBase) { если (имяМетод == "Вызов") { метода = TypeOf (LinqKit.Extensions) .GetMethods() .Where (o => o.Name == "Invoke"). First(); return 1; } [...] ' , но он возвращает ошибку. Методы типа« Расширения »недоступны. – user1756338
Я заметил ..... вы пытались его кормить «new {test = expressionOfStatusName.Invoke (transaction)». Пожалуйста, прочитайте ответ еще раз. Где-то я был неясен? –