@euforia72
Прогер

Как получить коллекцию студентов определенного грейда?

Код моделей:
public class Grade
    {
        public Grade()
        {
            Students = new HashSet<Student>();
        }
        [Key]
        public int GradeId { get; set; }
        public string GradeName { get; set; }
        public string Section { get; set; }

        public ICollection<Student> Students { get; set; }
    }
public class Student
    {
        [Key]
        public int Id { get; set; }
        public string Name { get; set; }

        public int CurrentGradeId { get; set; }
        public Grade Grade { get; set; }
    }

Код описания контекста базы данных:
public DbSet<Grade2> Grades2 { get; set; }
        public DbSet<Student> Students { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
modelBuilder.Entity<Student>()
            .HasOne(s => s.Grade)
             .WithMany(g => g.Students)
            .HasForeignKey(s => s.CurrentGradeId);
        }
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
sarapinit
@sarapinit Куратор тега C#
Точу водой камень
То как вы написали модели означает для EntityFramework, что он должен использовать явную загрузку для коллекции Students. Вам нужно сделать что-то вроде:
var gradesWithStudents = await _context.Grades.Include(o => o.Students).ToArrayAsync();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы