2015-05-20 6 views
0

У меня есть следующий запрос, который отлично работаетEntityFramework сортировки связанного объекта

 var x = cc.Products 
        .Include("Category") 
        .Include("Supplier") 
        .Include("Manufacturer") 
        .Include("ProductPrices") 
        .Include("ProductPrices.Valuta") 
        .Include("ProductPrices.UnitOfMeasure") 
        .OrderBy(p => p.PartNumber); 

Я не пытаюсь сортировать ProductPrices нисходящего, так что я могу выбрать самую последнюю цену. Однако я не могу получить его в одном запросе. По сути, мне нужно только выбрать один из ProductPrices на основе идентификатора этого столбца.

Есть ли способ сделать это? Или я должен сначала оценить запрос, а затем «Запустить их» и «Сортировка свойства навигации»?

ответ

0

Вы можете использовать метод делегата в вашей статье OrderBy:

var x = cc.Products 
        .Include("Category") 
        .Include("Supplier") 
        .Include("Manufacturer") 
        .Include("ProductPrices") 
        .Include("ProductPrices.Valuta") 
        .Include("ProductPrices.UnitOfMeasure") 
        .OrderBy(delegate (Product p) { 
          //some logic here 
          //order by the greatest price 
          // e.g: 
          return p.ProductPrices.Max(i => i.Price); 
        }); 
+0

Это сортирует все мои продукты, основанные на цене, я пытаюсь разобраться мою коллекцию связанных сущностей для каждого продукта. Продукты сами сортируются по PartNumber – Martin