获取集合的最后一项

时间:2013-09-11 19:26:56

标签: c# linq

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

    [Required]
    public string Name { set; get; }

    public ICollection<Column> Columns {set;get;}

    public virtual File AuthorImage { set; get; }

}

我有以上型号。我想得到所有的作者和每个1列。但我想要每个最新的(最后插入的id)列。

使用DbContext,假设我有DbSet<Author> Authors。得到这个的正确linq是什么?

对于一个作者,返回具有最高Id

的列的LINQ查询

2 个答案:

答案 0 :(得分:2)

对于一位作者,这会找到具有最高Id的列:

if (author.Columns != null && author.Columns.Count > 0) 
{
    Column c = author.Columns.OrderByDescending(x => x.Id).First();
}

答案 1 :(得分:1)

我认为这就是你要找的东西:

var authors = yourSet.Select(a => 
    new Author { Id = a.Id, Name = a.Name, Columns = new[]{a.Columns.Last()}, 
                 AuthorImage = a.AuthorImage});

这样做的好处是重塑了每一位作者,但你能做些什么。