2011-02-03 65 views
1

我有一个对象图:WCF和实体框架懒加载

学校 - >班级 - >学生。

,我想将其设置在我可以发送回学校类客户端的一种方法,它可以访问的延迟加载类的方式和学生。

这可能吗?

回答

4

简单:没有

您可以:

  • 在一次调用( “预先加载”)

或发回所需的所有数据(包括classesstudentsschool实体)

  • 你需要有对你的WCF服务不同的方法来检索在一个单独的呼叫详细数据(是这样的:这当然不是这样,当您在使用WCF线路发送实体 - List<Class> GetClassesForSchool(int schoolId)List<Student> GetStudentsForClass(int classId)

延迟加载本身只是只要你的实体框架对象上下文仍然是围绕要查询更多数据的工作。

+1

+1隐式懒加载了Web服务是坏的架构,很难实现(你必须通过自己的客户端实体的属性实现它)。您必须执行@marc描述的内容,或者您​​可以使用支持Expand方法的WCF数据服务来明确加载导航属性。 – 2011-02-03 10:33:18

1

我不这么认为,因为你的实体在不同层次旅游和与数据库连接的人会没有你的interventation从任何其他层进行访问。

你需要定制自己的解决方案要做到这一点,或者只是使用数据传输对象,这将有正确的信息,也不是一个,可能是无用的一些看法。

更新:如果您想了解更多关于DTO模式 阅读这篇文章: