ネストされたリストを持つEF 4.1データのLinqクエリ

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の目的です。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です