2011-06-02 80 views
1

- 我有一個它命名爲CLASS與以下記錄如何查詢一對多Linq中

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

我有另一個名爲撥款它具有ForeighnKey 類標識碼從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]變量類,現在我需要根據最高生效於日期像下面的下面的配置表中的記錄:

(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

謝謝!

問候 普拉迪普

回答

1

嘗試:

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; 

希望幫助,遺憾的查詢語法,但我沒有用太多的經驗加入在lambda。

+0

,但我需要記錄與最高生效於日期!給定查詢將只返回由有效From開始排序的記錄。看看例子! – Pradeep 2011-06-02 16:57:14

+0

很抱歉,誤讀了這個問題。不確定這個版本。給我一分鐘... – Martin 2011-06-02 17:00:10

+0

謝謝你的時間,....讓我試試這個... – Pradeep 2011-06-02 17:07:45

0

看示例代碼在這篇文章中:http://msdn.microsoft.com/en-us/library/cc161164.aspx

+0

你期望我用這個LINK做什麼? – Pradeep 2011-06-02 17:08:12

+0

閱讀並學習或忽略。這是你的選擇。如果你在頁面上向下看,它有一個LINQ to Entities的例子,它可以滿足你的要求。 – 2011-06-06 18:16:46