WCF和实体框架延迟加载

时间:2011-02-03 09:37:49

标签: c# .net wcf entity-framework

我有一个对象图:

学校 - >类 - >学生

我希望以一种可以将学校课程发送回客户端的方式进行设置,并且可以以懒惰的方式访问课程和学生。

可能吗?

2 个答案:

答案 0 :(得分:4)

简而言之:

你可以:

  • 在一次通话中回复所有需要的数据(包括classesstudents与您的school实体)(“急切加载”)

或:

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

只有在您的实体框架对象上下文仍然需要查询更多数据时,延迟加载本身才有效 - 当您使用WCF通过线路发送实体时,情况肯定不是这样。

答案 1 :(得分:1)

我不这么认为,因为你的实体穿越不同的层,如果没有来自任何其他层的干预,将无法访问具有数据库连接的实体。

您需要定制自己的解决方案才能做到这一点,或者只使用数据传输对象,这些对象将拥有正确的信息,也不会对某些视图无用。

更新: 如果您想了解有关DTO模式的更多信息,请阅读本文: