这是我的小问题:我有一个基于以下数据结构的EF4代码优先项目。
说,作为我有房子的实体,有多个房间,每个都有多个窗户。这非常线性。但窗口包含一系列材料以及一系列颜色。我现在想要加载房子,取决于房间,取决于窗户,取决于颜色和材料。
我使用以下代码加载所有房屋,其中包含取决于
// house -> room -> window -> material
queryableHouses.Include(Of Room)(Function(u) CType(u.Rooms.Select(Function(v) v.Windows.Select(Function(w) w.Materials)), Room))
// house -> room -> window -> color
queryableHouses.Include(Of Room)(Function(u) CType(u.Rooms.Select(Function(v) v.Windows.Select(Function(w) w.Colors)), Room))
如何获得包含材质和颜色的单个结果集?
非常感谢你!
答案 0 :(得分:0)
我正在考虑join
来帮助解决这个问题。就像SQL中的连接一样。你可以使用类似下面的内容,女巫是你描述的草稿......
'select windows
dim query = (From w In (queryableHouses.Include(Of Room)(Function(u) CType(u.Rooms.Select(Function(v) v.Windows), Room)))
'add color from windows
Join w.color in (queryableHouses.Include(Of Room)(Function(u) CType(u.Rooms.Select(Function(v) v.Windows), Room)) Select u.color) On w.color = u.color
'add material also from window
Join w.material in (queryableHouses.Include(Of Room)(Function(u) CType(u.Rooms.Select(Function(v) v.Windows), Room)) Select u.material)) On w.material = u.material
'then select the result
Select w)
请根据需要更正,这只是一个建议。我希望你能更多地了解这个的含义而不是写的内容。