我有一个 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() 函数。
谢谢你。