これに似たものを見たことがありますが、答えが見つかりません。私は出版物と著者の2つのエンティティを持っています。Author は必須ではなく、Publication.Author.Surname で OrderBy を実行すると NullReferenceException が発生します。この単純なクエリを作成するにはどうすればよいですか? また、EhtityFramework がこれを処理する方法を知っているのはなぜですか?
public class Publication {
[Key]
public int ID { get; set; }
public string Title { get; set; }
[Display(Name = "Author")]
public int? AuthorId { get; set; }
public virtual Author Author { get; set; }
}
public class Author{
[Key]
public virtual int ID { get; set; }
public virtual string Forename { get; set; }
public virtual string Surname { get; set; }
}
this.db.Publications
.OrderBy(p=>p.Author.Surname)
.Skip(skip)
.Take(model.PageSize).ToList();
出版物には関連する著者が常に存在するとは限らないため、失敗します。注: db は、以下の Entity Framework DBContext です。
public class PPRDBContext : DbContext
{
public DbSet<Publication> Publications { get; set; }
public DbSet<Author> Authors { get; set; }
}