我通过以下方式获得实体列表:
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,或其他一些解决方法,如扩展和帮助,都非常感谢。
答案 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()
。