2014-12-13 112 views
0
public class Personel 
{ 
    public int Id {set;get;} 
    public ICollection<Agreement> Agreements { set; get;} 
} 

public class Agreement 
{ 
    public int Id {set;get;} 
} 

我有一個如上所述的域模型並具有dbcontext。如何獲取Collection導航屬性的最後一個元素

我如何獲得最後的協議?

var result = _db.Personels.Include(a=>a.Agreements).OrderByDescending(x => x.Id); 

我想所有的personels和他們的最後協議...

這給了我企業人事的所有協議,我只希望最後一個按id降序排序。現在

+0

爲什麼不能只使用'Linq'中的'.Last()'? – 2014-12-13 11:51:26

+0

我想要得到所有的個人和他們的最後一致。 – DarthVader 2014-12-13 11:51:57

+0

你可以選擇匿名類型,其中每個代表'personel'和另一個代表'lastAgreement'。 – Andrew 2014-12-13 12:01:55

回答

0
var result = 
from p in _db.Personels 
select new { 
     personel = p, 
     lastAgreement = p.Agreements.OrderByDescending(x => x.Id).FirstOrDefault() 
     } 
.ToList(); 

您可以將此轉換的Personels列表並設置lastAgreement爲每個的。

+0

我想得到所有的人員和最後的協議 – DarthVader 2014-12-13 11:52:44

+0

這給了我最後一個人,並非所有的人與他們最後的協議 – DarthVader 2014-12-13 11:53:03

+0

好吧,可以用linq完成,時刻 – Andrew 2014-12-13 11:54:35

相關問題