Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF和实体框架延迟加载_C#_.net_Wcf_Entity Framework - Fatal编程技术网

C# WCF和实体框架延迟加载

C# WCF和实体框架延迟加载,c#,.net,wcf,entity-framework,C#,.net,Wcf,Entity Framework,我有一个对象图: 学校-->班级-->学生 我想以一种方式设置它,我可以将学校的课程发送回客户端,它可以以一种惰性加载的方式访问课程和学生 这可能吗?我不这么认为,因为您的实体正在跨不同的层运行,如果没有其他层的干预,将无法访问具有数据库连接的实体 您需要定制您自己的解决方案来实现这一点,或者只使用数据传输对象,这些对象将具有正确的信息,也不会对某些视图无用 更新: 如果您想了解有关DTO模式的更多信息,请阅读本文: 我不这么认为,因为您的实体正在跨不同的层运行,如果没有其他层的干预,将无法

我有一个对象图:

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

我想以一种方式设置它,我可以将学校的课程发送回客户端,它可以以一种惰性加载的方式访问课程和学生


这可能吗?

我不这么认为,因为您的实体正在跨不同的层运行,如果没有其他层的干预,将无法访问具有数据库连接的实体

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

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


我不这么认为,因为您的实体正在跨不同的层运行,如果没有其他层的干预,将无法访问具有数据库连接的实体

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

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


    • 简言之:

      您可以:

      • 在一次呼叫中发回所需的所有数据(包括
        班级
        学生
        ,您的
        学校
        实体)(“急切加载”)
      或:

      • 您需要在WCF服务上有单独的方法才能在单独的调用中检索详细数据(类似于:
        List GetClassesForSchool(int-schoolId)
        List GetStudentsForClass(int-classId)

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

      简而言之:

      您可以:

      • 在一次呼叫中发回所需的所有数据(包括
        班级
        学生
        ,您的
        学校
        实体)(“急切加载”)
      或:

      • 您需要在WCF服务上有单独的方法才能在单独的调用中检索详细数据(类似于:
        List GetClassesForSchool(int-schoolId)
        List GetStudentsForClass(int-classId)

      延迟加载本身只能在实体框架对象上下文仍然存在的情况下工作,以便查询更多数据-当您使用WCF跨线路发送实体时,情况肯定不是这样。

      +1通过web服务隐式延迟加载是一种糟糕的体系结构,很难实现(您必须自己在客户端实体属性中实现它)。您必须按照@marc所描述的去做,或者您可以使用支持扩展方法的WCF数据服务来显式加载导航属性。+1隐式延迟加载web服务是糟糕的体系结构,很难实现(您必须自己在客户端实体属性中实现它)。您必须按照@marc所描述的操作,或者您可以使用支持EXPLAND方法的WCF数据服务来显式加载导航属性。