Рассмотрим следующие два класса School
и Student
. Школа получила коллекцию учеников. Также ученик связался со школой, которая не отображается
public class School
{
public int Id { get; set; }
public virtual ICollection<Student> students { get; set; }
}
public class Student
{
public int Id { get; set; }
public int SchoolId { get; set; }
public string Name { get; set; }
public bool Deleted { get; set; }
public virtual School School { get; set; }
}
Мой модельер выглядит следующим образом
modelBuilder.Entity<School>()
.HasMany(obj => obj.students)
.WithOne()
.HasForeignKey(obj => obj.SchoolId)
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
modelBuilder.Entity<Student>(entity =>
{
entity.HasOne(e => e.School);
});
Что сработало -
var result = mydbcontext.Schools
.Include(d => d.students)
.Where(d => d.Id == 1)
.Select(x => new School
{
Id = x.Id,
students = x.students.Where(s => !s.Deleted).ToList()
})
.AsNoTracking()
.ToList();
Что НЕ работает -
var school = mydbcontext.Students
.Include(x => x.School) //returning null
.Where(s => !s.Deleted)
.ToList();
Когда я попробовал вышеуказанный код, я получаю всех учеников, которые не были удалены, но я получаю Empty
результаты для школы
Я что-то здесь упускаю?