1

EF Code First Architecture の次のスキーマがあります。

クラスの先生

public class Teacher
{
[Key]
public int Teacher_PK { get; set; }
public string Name { get; set; }
public int Age { get; set; }        
public virtual ICollection<TeacherClassroom> TeacherClassroom { get; set; } // I have added this to access classroom class's property
}

クラス教室

public class Classroom
{
[Key]
public int Classroom_PK { get; set; }
public string ClassName { get; set; }
public int ClassStrength { get; set; }
}

これらのテーブルとの関係を確立するためのテーブルを作成しました。

public class TeacherClassroom
{
[Key]
public int TecherClassroom_PK { get; set; }

[ForeignKey("Teacher_FK")]
public virtual Teacher Teacher { get; set; }

[Required]
public int Teacher_FK { get; set; }

[ForeignKey("Classroom_FK")]
public virtual Classroom Classroom { get; set; }

[Required]
public int Classroom_FK { get; set; }
}

教師クラスから教室クラスのプロパティにアクセスしたいので、ICollection<TeacherClassroom>教師クラスに仮想を追加しましたが、教室クラスのプロパティのデータを取得できません。

これまでのところ、私はフォローしようとしました

var teacher = await _context.Teacher.Include(c=>c.TeacherClassroom.Select(y=>y.Classroom))
                .FirstOrDefaultAsync(m => m.Teacher_PK == id);

上記の文では、 Classroom Property を として取得していnullます。

前もって感謝します。

4

2 に答える 2

1

両方のレベルを含める必要があります。

_context.Teacher.Include(c => c.TeacherClassroom)
                .ThenInclude(tc => tc.Classroom)
                .FirstOrDefaultAsync(m => m.Teacher_PK == id);
于 2022-02-08T17:15:53.523 に答える