我正在尝试计算有多少订单行(ol)的自定义字段“distributedOrderLineId”等于当前迭代的订单行 ID。
问题是,并非每个订单行都定义了这个自定义字段。如何使 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
编辑结束