WPFとEF
4.2でデスクトップアプリケーションを構築しています。私は1対多のカスケード関係を持つ3つのエンティティを持っています。生徒はゼロ以上の学校を持っています。スクールにはゼロ以上の授業があります。私は、学生、すべての学校、すべてのクラスを示すグループ化されたリストにデータを表示する必要があります。
Students School Class
int Id int Id int Id
string Name string Name string Subject
int yearBorn string Address int Credits
IList IList
私はデータをどのように形作るかに困惑しています。
最初の問題は、EF
4.2がナビゲーションオブジェクト内のエンティティのIDを隠すため、「グループ」のキーとして使用できないことです。
次の問題は、Student.NameやSchool.Addressのような方法でオブジェクトの属性を返す必要があるため、グループに2番目のレベルの入れ子を含める方法がわかりません。
ベストアンサー
グループ化
する必要はありません。現在のオブジェクトグラフでエンティティを取得するだけです。
標準は次のようなものです
var context = new EntityContext();
var students = context.Students.Include("Schools").Include("Schools.Classes");
return students;
これは、各生徒に一連の学校があり、各学校には一連のクラスが含まれている、一連の生徒を含むオブジェクトグラフを返します。
「グループ化」はEFによって行われます。これは、リレーショナルデータベーステーブルをコード内のオブジェクトにマップするORMの目的です。