C# 如何选择一条记录,并且只选择它在LINQ to SQL中具有最高日期的子记录

C# 如何选择一条记录,并且只选择它在LINQ to SQL中具有最高日期的子记录,c#,linq,linq-to-sql,children,C#,Linq,Linq To Sql,Children,将以下字段添加到table Person: IdPerson, Name, Description. 和朋友一起吃饭 IdFriendVisit, Duration, TimeOfVisit, IdPerson 关系为1到n,其中1个人可以有n个FriendVisit 我想让所有人在linq to sql语句中只进行最后一次访问 有点像: var allpersons = this.ObjectContext.Person.Include(p=>p.FriendVisit.OrderB

将以下字段添加到table Person:

IdPerson, Name, Description.
和朋友一起吃饭

IdFriendVisit, Duration, TimeOfVisit, IdPerson
关系为1到n,其中1个人可以有n个FriendVisit

我想让所有人在linq to sql语句中只进行最后一次访问

有点像:

var allpersons = this.ObjectContext.Person.Include(p=>p.FriendVisit.OrderBy(fv => fv.TimeOfVisit).FirstOrDefault())
实际上,我只需要FriendVisit表的持续时间和表中人员的姓名,但我不知道这是否相关

有什么办法吗

我想从孩子那里搜索数据,然后把父母排除在外。。。但我想用自然的方式,给父母打电话,让孩子们离开

例:


你可以试试这个:

在查询语法中

或者用流利的语法


我想这就是我一直在寻找的,现在我尝试一下,你知道这是否可以用lambda表达式实现吗?当然可以。请给我几分钟时间添加相应的代码。谢谢你的耐心。
var allVisits = this.ObjectContext.FriendVisit.Include(p=>p.Persons).OrderBy(fv => fv.TimeOfVisit).FirstOrDefault())
var allPersons = from p in this.ObjectContext.Person
                 join f in this.ObjectContext.FriendVisit
                 on p.IdPerson equals f.IdPerson
                 group by new { p, f }
                 select new 
                 {
                     Name = p.Name;
                     Duration = f.OrderBy(x=>x.TimeOfVisit).Last().Duration
                 };
var allPersons = this.ObjectContext.Person.Join(this.ObjectContext.FriendVisit,
                                                x=>x.IdPerson,
                                                y=>y.IdPerson
                                                (x,y)=> new { x, y }
                                         ).GroupBy(z=>z)
                                          .Select(x=> new 
                                           {
                                               Name = p.Name;
                                               Duration = f.OrderBy(y=>y.TimeOfVisit)
                                                           .Last()
                                                           .Duration
                                           });