Попытка упорядочить по значению, которое имеет отношение один ко многим - запрос LINQ - PullRequest
0 голосов
/ 13 января 2012

Я использовал моего хорошего друга Google, чтобы найти решение проблемы, и это настолько, насколько я смог до того, как закончились идеи

В основном у меня есть 3 таблицы

Разработка имеет отношение 1 ко многим со свойством (разработка может иметь много свойств) Свойство имеет отношение 1 ко многим с PropertyRent (свойство может иметь много арендных плат)

Проблема, с которой я столкнулся, заключается в сортировке по стоимости аренды, вот что у меня есть:

var developmentListSorted = (from d in ContextEntity.Properties
                             where developments.Contains(d.Development.DevelopmentId)
                             orderby d.PropertyRents.Select(x=>x.PropertyRentValue).OrderBy(x=>x.CompareTo(x))
                             select d.Development).Distinct().ToList();

Теперь без OrderBy я получаю хороший несортированный список. Мне действительно нужно иметь возможность сортировать по PropertyRentValue.

Свойство 'development' представляет собой массив идентификаторов.

Пожалуйста, дайте мне знать, если мне нужно уточнить это.

Большое спасибо.

1 Ответ

2 голосов
/ 13 января 2012

Я предполагаю, что ContextEntity.Developments предоставляет вам доступ к событиям

var developmentListSorted =
               from d in ContextEntity.Developments
                  where developments.Contains(d.DevelopmentId)
                  orderby
                    d.Properties.Min(x=>x.PropertyRents.Min(y=>y.PropertyRentValue))
                  select d;

Это предполагает, что вы сортируете по минимальной стоимости аренды, вы можете изменить оба вхождения от Min до Maxчтобы получить максимальное значение или даже использовать Average

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...