Entity Framework 4 / Linq: Как упорядочить иерархическую сущность (). - PullRequest
1 голос
/ 16 ноября 2010

У меня ViewModel, вырезанный из нескольких отношений сущностей:

Products[].Prices[].Others[].myField

Как заказать Продукты [] по вложенному myField? Когда я делаю предложение Where, это выглядит так:

Products.Where( p => p.Prices.Any( q => q.Others.Any( r => r.myField == 4)));

Итак, если бы я захотел Products.OrderBy () и упорядочить по myField, как бы выглядело выражение?

Products.OrderBy( p => p.Prices.SelectMany( ??

Ответы [ 2 ]

1 голос
/ 16 ноября 2010

Я предполагаю, что у цен есть поле Value, которое является основным типом или сопоставимым типом, поэтому у вас есть:

Products.OrderBy( p => p.Prices.Average(x=>x.Value))

или

Products.OrderBy( p => p.Prices.Min(x=>x.Value))
1 голос
/ 16 ноября 2010

Поскольку у вас есть несколько цен ниже вашего продукта, вам нужно выбрать, на какую сортировать, например

Products.OrderBy( p => p.Prices.First().Others.First().myField )

или если вы хотите заказать по самой высокой цене

Products.OrderBy( p => p.Prices.OrderByDescending(price => price.Value).First().Others.First().myField )
...