カスタムフィールド「distributedOrderLineId」が現在の反復のオーダーライン ID と等しいオーダーライン (ol) の数を数えようとしています。
問題は、すべてのオーダーラインにこのカスタム フィールドが定義されているわけではないということです。エラーをスローする代わりに、LINQ が未定義のカスタム フィールドでオーダーラインをスキップするようにするにはどうすればよいですか。
以下のコードを参照してください。
var distributionsLeft = ol.Quantity - 1 - PurchaseOrder.All().Where(y => int.Parse(y["distributedOrderLineId"]) == ol.Id).Count();
よろしく、 Brinck10
編集
anyを使用して次のコードを試しました。
PurchaseOrder.All().Where(y => y.OrderProperties.Any(z=>z.Key=="distributedOrderLineId")).Where(a=>a["distributedOrderLineId"]==ol.OrderLineId.ToString()).Count();
残念ながら、うまくいきません。スタック トレースに表示されるエラーは次のとおりです。
[NotSupportedException: System.String get_Item(System.String)]
NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitMethodCallExpression(MethodCallExpression expression) +206
編集終了