如何使第二级包括对象

Fix*_*xus 1 c# linq entity-framework windows-runtime

我有这样的结构

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

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

class Media {

}
Run Code Online (Sandbox Code Playgroud)

现在我正在使用这个LINQ来获取所有课程

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

它工作正常,但标志列表有安培媒体列表.我的意思是media每个对象中的属性Sign等于null.我需要做什么才能为每个Sign包含媒体对象?整个数据保存在数据库中

Jon*_*eet 5

你用的db.Lesson.Include("signs.media").

参数ObjectQuery<T>.Include是属性路径,而不仅仅是单个根属性.请注意,对于"signs.media",您不需要另外包含"标志":

路径包罗万象.例如,如果包含调用表示包含("Orders.OrderLines"),则不仅包括OrderLines,还包括订单.

(顺便说一下,您应该调整属性名称以符合.NET框架约定,因此您最终会使用"Signs.Media".)