Linq-запрос для отображения правильного порядка сортировки - PullRequest
0 голосов
/ 10 сентября 2010

Таблица 1: Поиск

LookUpID
LookUpName
Desc
DisplayOrder

Таблица 2: BillingRates

BillingRateID
BillingRate
ClientID
LookupID

Я хочу, чтобы имя поиска отображалось (сортировка по ставке счета)

DataContext DataContext1 = new DataContext1(AppSettings.ConnectionString);

return ( from Lookups in DataContext1.Lookups
         join BillingRates in DataContext1.BillingRates
         on  Lookups.LookupID equals BillingRates.LookupID
         orderby BillingRates.BillingRate
         select new
         {
             Lookups.LookupID,
             Lookups.LookupName,
             Lookups.Desc
         }).Distinct();

Это дало мне весь ряд, поэтому я использовал Distinct (); Имя поиска по-прежнему не основано на тарифах.

Я новичок в LINQ. Любые указатели будут оценены.

Ответы [ 2 ]

0 голосов
/ 10 сентября 2010

Прежде всего, если у вас настроены отношения с внешним ключом, LINQ автоматически создаст для вас соединение, поэтому оно будет просто:

 DataContext1.Lookups.Max(LkUp => LkUp.BillingRate.BillingRate)

В противном случае (с явным объединением)

return ( from Lookups in DataContext1.Lookups   
     join BillingRates in DataContext1.BillingRates   
     on  Lookups.LookupID equals BillingRates.LookupID 
     orderby BillingRates.BillingRate desc
     select new   
     {   
         Lookups.LookupID,   
         Lookups.LookupName,   
         Lookups.Desc,  
         BillingRates.BillingRate  
     }).First();
0 голосов
/ 10 сентября 2010

Почему бы просто не сделать OrderBy в конце?

return (from Lookups in DataContext1.Lookups 
     join BillingRates in DataContext1.BillingRates 
     on  Lookups.LookupID equals BillingRates.LookupID 
     select new 
     { 
         Lookups.LookupID, 
         Lookups.LookupName, 
         Lookups.Desc,
         BillingRates.BillingRate
     })
     .GroupBy(x => x.LookupID)
     .Select(y => y.OrderByDescending(x => x.BillingRate).First())
     .OrderByDescending(x => x.BillingRate);

РЕДАКТИРОВАТЬ: Я немного растерялся, но попробуйте следующее и дайте мне знать, если это поможет.

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