多层webapp中的Objectcontext和foreignkey-relationship

时间:2010-10-05 09:14:41

标签: entity-framework entity-framework-4

我正在使用实体框架4创建一个webapp。据我所知,通过广泛的谷歌搜索,最好的做法是在使用objectcontext时创建并终止它,而不是让它活得太久。所以在我的数据层中,我正在做类似的事情:

使用(var context = new MyDAO()) { 我的代码 立即创建并杀死上下文。

我喜欢实体框架的一个原因是能够直接在代码中使用相关对象(例如Account.Employees)。问题是,当我尝试在我的表示层中执行此操作时,它会抛出异常,因为上下文不再可用,因此无法获取该帐户的员工。我已经尝试在我的数据层中的上下文中启用延迟加载,但它似乎不起作用。

所以我的问题是,如何在不同层级之间加载关系(懒惰)?

由于 托马斯

1 个答案:

答案 0 :(得分:0)

在关闭上下文之前,您必须加载所需的所有内容。

这是EF的设计决定。应控制任何物体装载而不是间接发生。这通常会提供更具可扩展性的解决方案。

修改

感谢您的评论。

这些设置在上下文中。所以你仍然需要打开上下文。一种方法是在顶层打开上下文并将其作为参数发送。