Как сделать запрос один ко многим в Linq - PullRequest
1 голос
/ 02 июня 2011

- у меня есть таблица с именем CLASS со следующими записями в ней

     (PK)        
    ClassID   |   Name     
    ----------|----------
     1        |    CSE        
     2        |    ECE       

У меня есть еще одна таблица по имени ALLOCATIONS , который имеет ForeighnKey Class_ID из CLASS таблица

   (PK)        (FK)
    ID   |   Class_ID   |   EffectiveFrom  |   Allocation
    -----|--------------|------------------|---------------
     1   |       1      |    10-May-2011   |      A
     2   |       1      |    10-May-2011   |      B
     3   |       1      |    14-June-2011  |      A
    ---------------------------------------|---------------
     4   |       2      |    14-June-2011  |      C   
     5   |       2      |    14-June-2011  |      D
     6   |       2      |    17-June-2011  |      C

У меня есть CSE & ECE Классы в переменной IQueryable [CLASS] , теперь мне нужны следующие записи таблицы распределения, основанные на самой высокой EffectiveFrom дате, как показано ниже:

   (PK)        (FK)
    ID   |   Class_ID   |   EffectiveFrom  |   Allocation
    -----|--------------|------------------|---------------
     2   |       1      |    10-May-2011   |      B
     3   |       1      |    14-June-2011  |      A
    ---------------------------------------|---------------
     5   |       2      |    14-June-2011  |      D
     6   |       2      |    17-June-2011  |      C

Как это сделать в LINQ (предпочтительно в выражении LAMBDA), мне нужны результаты в AllocationType не AnaymousType

Спасибо!

С уважениемПрадип

Ответы [ 2 ]

1 голос
/ 02 июня 2011

попробовать:

from allocation in CurrentClasses.Allocations 
     group allocation by allocation.Class_ID
     into allocationGroups
     from allocationGroup in allocationGroups
     from allocationRow in allocationGroup
     where allocationRow.Date == allocationGroup.Max(x => x.Date)
     select allocationRow;

Надеюсь, это поможет, извините за синтаксис запроса, но у меня нет большого опыта работы с объединениями в лямбда-выражениях.

0 голосов
/ 02 июня 2011

Посмотрите на пример кода в этой статье: http://msdn.microsoft.com/en-us/library/cc161164.aspx

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