达到相关实体的属性

时间:2013-01-19 23:32:25

标签: asp.net-mvc-3 entity-framework

我通过以下方式获得实体列表:

var riscregions = db.RiscEntranceDetails.OrderBy(r => r.RiscEntranceID).Include(r => r.RiscEntrance).Include(r => r.RiscRegion);

但是,我需要达到更深层次相关的实体属性,例如:

<td>@item.RiscEntrance.ID</td>
<td>@item.RiscEntrance.Personnel.Name</td>
<td>@item.RiscEntrance.EntranceDateTime</td>
<td>@item.RiscEntrance.ShiftWork.ShiftGroup.TextID</td>

我怎样才能达到这些目标?任何建议,包括linq,或其他一些解决方法,如扩展和帮助,都非常感谢。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

var riscregions = db.RiscEntranceDetails
                .OrderBy(r => r.RiscEntranceID)
                .Include(r => r.RiscEntrance)
                .Include(r => r.RiscEntrance.Personnel)
                .Include(r => r.RiscEntrance.ShiftWork.ShiftGroup)

只有在需要选择集合的子项时,才需要在Select表达式中使用Include

答案 1 :(得分:1)

http://msdn.microsoft.com/en-us/data/jj574232.aspx

热切地加载多个级别。您可以在.Select() lambda中使用.Include()