WCF 和实体框架延迟加载

Att*_*lah 2 .net c# wcf entity-framework

我有一个对象图:

学校-->班级-->学生。

我想以一种可以将学校课程发送回客户端的方式进行设置,并且它可以以延迟加载的方式访问课程和学生。

那可能吗 ?

mar*_*c_s 5

简而言之:

您可以:

  • 在一次调用中发回所需的所有数据(包括classesstudents的实体)(“预加载”)school

或者:

  • 您需要在 WCF 服务上使用单独的方法来在单独的调用中检索详细数据(例如:List<Class> GetClassesForSchool(int schoolId), List<Student> GetStudentsForClass(int classId)

延迟加载本身仅在您的实体框架对象上下文仍可供查询更多数据时才起作用 - 当您使用 WCF 通过网络发送实体时,情况肯定不是这样。

  • +1 通过 Web 服务隐式延迟加载是糟糕的架构,并且难以实现(您必须在客户端实体属性中自行实现)。您必须执行 @marc 描述的操作,或者可以使用支持 Expand 方法来显式加载导航属性的 WCF 数据服务。 (2认同)