別の式を呼び出す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'は、指定されたLINQtoEntitiesクエリ式にバインドされていません。
この例外は_convertQuantityProxy.Invoke(order.Product、order.Quantity)から発生します。元のパラメーター「order」をこの呼び出しに渡すにはどうすればよいですか?LinqKit / AsExpandable()関数を使用していることに注意してください。
ありがとうございました。