我有一个由几个实体关系构成的ViewModel:
Products[].Prices[].Others[].myField
如何通过嵌套的myField订购产品[]?当我执行Where子句时,它就像这样:
Products.Where( p => p.Prices.Any( q => q.Others.Any( r => r.myField == 4)));
因此,如果我想通过myField进行Products.OrderBy()和订购,那么Expression会是什么样子?
Products.OrderBy( p => p.Prices.SelectMany( ??
答案 0 :(得分:1)
由于您的产品价格低于几个,因此您需要选择要排序的价格,例如
Products.OrderBy( p => p.Prices.First().Others.First().myField )
或者如果您想以最高价格订购
Products.OrderBy( p => p.Prices.OrderByDescending(price => price.Value).First().Others.First().myField )
答案 1 :(得分:1)
我假设价格有一个字段Value
,它是主要类型或可比较类型,所以你有:
Products.OrderBy( p => p.Prices.Average(x=>x.Value))
或
Products.OrderBy( p => p.Prices.Min(x=>x.Value))