2

2 つの単純なクラスがあります。

class Student
{
    public int StudentId { get; set; }
    public int IndeksNo { get; set; }
    public string Name { get; set; }
    public string LastName { get; set; }
    public virtual Group Group { get; set; }
}

class Group
{
    public int GroupId { get; set; }
    public string Name { get; set; }
    public virtual List <Student > Students { get; set; }
}

データベースが正しく作成されている (Code First を使用)。両方のテーブルにいくつかの項目を追加しましたが、常に Student リストと Student の Group プロパティが null です。理由がわかりません。私は約1時間解決策を検索しましたが、次のようなものを思いつきました:

modelBuilder.Entity<Student>()
    .HasRequired(st => st.Group)
    .WithMany(gr => gr.Students)
    .WillCascadeOnDelete(false);

しかし、それは役に立ちません。何がうまくいかなかったのか、なぜ Group.Students と Student.Group が常に null なのかわかりません。グループのリストと学生のリストがデータベースから正常に選択されました-つまり、これらの接続を除くすべてのパラメーターを意味します。

4

1 に答える 1

2

EntityFrameworkの遅延読み込み機能を使用するため。ナビゲーション プロパティは仮想でなければなりません。ケースのあなたのStudentクラスで。問題はあなたのGroupクラスにあります。ナビゲーション プロパティは仮想ですList<Student>virtual ICollection<Student>

に変更するだけGroupです

class Group
{
    public int GroupId { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Student > Students { get; set; }
}
于 2013-11-10T14:31:55.667 に答える