C# 如何选择一条记录,并且只选择它在LINQ to SQL中具有最高日期的子记录
将以下字段添加到table Person: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
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
});