1
我有一個LINQ表達其要求的另一種表達這也要求另一種表達......C#的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:參數「秩序」不綁定在指定的LINQ to Entities查詢表達式中。
此異常來自_convertQuantityProxy .Invoke(order.Product,order.Quantity) 如何將原始參數「order」傳遞給此調用? 請注意,我使用LinqKit/AsExpandable()函數。
謝謝。
你能提供與_ExpressionOfConvertQuantity相關的代碼嗎? – daryal
'公共靜態表達> _ExpressionOfConvertQuantity { 得到 { 表達> convertQuantity = (產品,數量) => ModelEntities.DoubleToDecimal( (ModelEntities.DecimalToDouble(quantity.Value)* Math.Pow(10.0,ModelEntities.DecimalToDouble(product.QuantityDecimals))) ); 返回convertQuantity; } }' –
user1756338
@ user1756338:我將您的代碼移至問題所在的位置。它不應該在評論中,只是一個供參考。 –