2010-06-10 32 views
1

我在我的linq dbml中有2个表。其中一个是拥有uniqueid的人称为peopleid,另一个是具有用于peopleid的外键和称为id的uniqueid的垂直。我需要创建一种类型的linq查询,对人员进行左外连接,并根据max(id)列获取垂直表中的最新记录。任何人都可以建议这应该是什么样子?谢谢。如何创建linq查询使用连接和最大

+0

它应该看起来像一个LINQ查询! – Luiscencio 2010-06-10 17:35:44

回答

0

它应该像这样(只是一个建议):

from p in con.Peoples 
orderby p.LastName , p.FirstName 
let maxPrint = p.FingerPrints 
    .OrderByDescending(fp => fp.Id) 
    .FirstOrDefault() 
where maxPrint != null 
select new { 
    p.PeopleID, 
    Name = p.FirstName + " " + p.LastName, 
    FingerPrint = maxPrint 
}; 
+0

我还没有用过之前和谷歌似乎并没有很多上linq到sql,让我不知道到底什么代码应该看起来像。以下是我现在拥有的。任何想法我做错了什么?谢谢 var recs = from p in con.Peoples join cj in con.Jobs on p.PeopleID等于cj.PeopleID加入f in con.Fingerprints on p.PeopleID等于f.PeopleId let maxrec =(from fp in f select f .id).Max order by p.LastName,p.FirstName select new {p.PeopleID,p.FirstName +“”+ p.LastName}; – 2010-06-10 18:23:14

+0

太好了,谢谢!我会试一试。 – 2010-06-10 18:57:50