2011-04-29 50 views
0

如果实体A与实体B具有FK关系,并且在EF4内表示为实体A中的导航属性,那么实体B的数据何时加载?是在创建A的实例时,还是仅在从A内访问B时?导航属性何时加载?

回答

1

这取决于加载方法:

  • 预先加载 - 查询加载包含.Include(a => a.B)。在这种情况下,A和相关的B都在查询执行期间被加载
  • 延迟加载 - 仅在第一个查询期间加载A,并且如果它仍处于生存范围内,一旦导航属性第一次访问,它可以触发延迟加载B
  • 显式加载 - 您将手动触发加载通过调用context.LoadProperty(a, "B");