排除子導航屬性我有兩個實體:EF:包括導航屬性和在同一時間
public class Student
{
public int Id { get; set; }
public virtual ICollection<Exam> PExams { get; set; }
}
public class Exam
{
public int Id { get; set; }
public DateTime Date { get; set; }
public int PStudentId { get; set; }
public virtual Student PStudent { get; set; }
}
我描述他們的DbContext:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Exam>()
.HasRequired(d => d.PStudent)
.WithMany(d => d.PExams)
.HasForeignKey(d => d.PStudentId);
}
我關閉延遲加載Configuration.LazyLoadingEnabled = false;
和添加的屬性用於DBContext中的考試和學生。
public DbSet<Exam> Exams { get; set; }
public DbSet<Student> Students { get; set; }
現在我試着拿到考試列表。
await m_DataContext.Exams.ToListAsync();
此代碼讓我列出具有空屬性PStudent的考試(如預期的那樣)。所以我改變了我的代碼,以未來:
await m_DataContext.Exams.Include(d=>d.PStudent).ToListAsync();
我預計我會收到與充滿財產PStudent和PStudent財產PExams考試將是空的名單,但有數據(考試的列表)。當我包含主要導航屬性時,應該如何更改以使子導航屬性爲空?
您是否已將「DbSet」添加到上下文中? –
@IlyaChumakov是的,我忘了提及這一點。 – RredCat
爲什麼你想要它是空的?它包含了它們,因爲它無論如何都是物化的,所以它是有意義的。 –