0
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は何でしょうか?

1 人の作成者に対して、ID が最も高い列を返す LINQ クエリ

4

2 に答える 2

2

1 人の著者の場合、これは ID が最も高い列を見つけます。

if (author.Columns != null && author.Columns.Count > 0) 
{
    Column c = author.Columns.OrderByDescending(x => x.Id).First();
}
于 2013-09-11T19:44:28.847 に答える
1

これがあなたが探しているものだと思います:

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

これには、すべての作成者を作り直すという欠点がありますが、何ができるでしょうか。

于 2013-09-11T19:29:36.150 に答える