所以场景是我有一个项目表,对于每个项目,在另一个表中有许多注释。我想获得最新评论的项目列表。
我这样做了:
var res = (from i in db.Item
select new
{
ID = i.ID,
Name = i.Name,
Comment = (from c in db.Comment
orderby c.Created descending
where c.Item == i.ID
select new { Message = c.Message }).FirstOrDefault().Message
});
好的,这让我得到了我想要的结果,但它太慢了......请帮我把这个结合起来吧!
谢谢!
答案 0 :(得分:1)
试试这个:
var res = db.Item.Join(db.Comment, x=>x.ID, x=>x.ID, (x,y)=>new{x,y})
.OrderByDescending(a=>a.y.Created)
.GroupBy(a=>a.x.ID,(key,items)=>items.First())
.Select(a=> new {
a.x.ID,
a.x.Name,
a.y.Message
});