【发布时间】:2013-07-30 12:03:58
【问题描述】:
如何调用这个 LinqKit 表达式
public static Expression<Func<Transaction, string>> ExpressionOfStatusName
{
get
{
Expression<Func<Transaction, string>> status =
(transaction) => transaction.TransactionStatus.Name;
return status;
}
}
在动态 linq 查询中(使用 Microsoft 的 System.Linq.Dynamic 作为字符串的 Linq)
这个表达式在像这样的标准 Linq 查询中效果很好
Expression<Func<Transaction, string>> expressionOfStatusName = Transaction.ExpressionOfStatusName;
var ex = from transaction in context.Transaction.AsExpandable()
select expressionOfStatusName.Invoke(transaction)
但是当我尝试从动态 linq 查询中调用它时,我收到错误“'Expression`1' 类型中不存在适用的方法 'Invoke' 我尝试在文件 System.Linq.Dynamic 中添加 linqkit 导入,但仍然无法正常工作。
我希望能够做这样的事情
var ex = context.Transaction.AsExpandable()
.Select (transaction=>transaction)
.Select("new { test = expressionOfStatusName.Invoke(transaction)");
感谢您的帮助
【问题讨论】:
标签: c# linq entity-framework dynamic-linq linqkit