我有一个LINQ表达式,它调用另一个表达式,它也调用另一个表达式......
public static Expression<Func<Models.Order, Models.Product,decimal?>> _ExpressionOfGetCounterValue
{
get
{
var _getAmountProxy = Product._ExpressionOfGetAmount;
var _convertQuantityProxy = Product._ExpressionOfConvertQuantity;
Expression<Func<Models.Order, Models.Product, decimal?>> cv =
(order,product) => (
_getAmountProxy.Invoke(
order.Product,
_convertQuantityProxy.Invoke(order.Product,order.Quantity),
order.Product.Price));
return cv;
}
}
public static Expression<Func<Models.Product, decimal?, decimal?>> _ExpressionOfConvertQuantity
{
get
{
Expression<Func<Models.Product, decimal?, decimal?>> convertQuantity =
(product, quantity) => ModelEntities.DoubleToDecimal(
ModelEntities.DecimalToDouble(quantity.Value)
* Math.Pow(10.0, ModelEntities.DecimalToDouble(product.QuantityDecimals))
);
return convertQuantity;
}
}
执行此操作时,我收到错误InvalidOperationException:参数'order'未绑定在指定的LINQ to Entities查询表达式中。
此异常来自_convertQuantityProxy .Invoke(order.Product,order.Quantity) 如何将原始参数“order”传递给此调用? 请注意,我使用LinqKit / AsExpandable()函数。
谢谢。
答案 0 :(得分:0)
最后我发现,我必须返回
return cv.Expand();