1

这是我的小问题:我有一个基于以下数据结构的 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))

如何获得包含材料和颜色的单个结果集?

非常感谢您!

4

1 回答 1

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)

请根据需要进行更正,这只是一个建议。我只是希望你能更多地了解这个的含义,而不是所写的。

于 2012-10-16T19:08:03.050 回答