1

私はこのような構造を持っています

class Lesson {
    List<Sign> signs { get; set; }
}

class Sign {
    List<Media> media { get; set;}
}

class Media {

}

今、私はこのLINQを使用してすべてのレッスンを受けています

var items = (from lesson in this.db.Lesson.Include("Sign")
                     where lesson.module_id == param
                     select lesson);

正常に動作しますが、標識リストには十分なメディアリストがあります。つまりmedia、各オブジェクトの属性Signはnullに等しいということです。各サインのメディアオブジェクトを含めるには何をする必要がありますか?データ全体がデータベースに保存されます

4

1 に答える 1

5

を使用しますdb.Lesson.Include("signs.media")

の引数は、単一のルートプロパティではなくObjectQuery<T>.Include、プロパティパスです。「signs.media」では、「signs」も個別に含める必要がないことに注意してください。

パスはすべて込みです。たとえば、include呼び出しがInclude( "Orders.OrderLines")を示している場合、OrderLinesだけでなく、Ordersも含まれます。

(ちなみに、プロパティ名は.NET Frameworkの規則に準拠するように調整する必要があるため、最終的には「Signs.Media」になります。)

于 2012-10-04T16:59:53.330 に答える