1

这是我的问题:我有一个代码优先的 EF4 模型,其中有一个 TBH 层次结构。因此,我在数据库中有一个表,该表映射到从基类 A 继承的 2 个类(A1 和 A2)上。A1 类将导航属性定义为另一个类(例如一对一)。我的问题是:如何包含 B 相关实例?

我不能做这样的事情:

Dim res = From a In dbContext.A.Include("B_rel_obj")
          Select a

因为 B_rel_obj 只为 A1 定义,而不是在 A 和 A2 中。

我的解决方案是:

Dim res = From a In dbContext.A
Dim res1 = From a1 In res
           Where TypeOf(a1) Is A1
           Select a1

For Each a1 As A1 In res1
  dbContext.Entry(a1).Reference(Function(a) a.B_rel_obj).Load()
Next

这行得通,但我不喜欢将结果循环到 Load()。有没有办法一次加载所有集合?

4

0 回答 0