使用WCF服务域模型进行延迟加载?

使用WCF服务域模型进行延迟加载?

Lazy Loading with a WCF Service Domain Model?

我希望将我的域模型推送到WCF服务API中,并希望对这种设置类型的延迟加载技术有所了解。

使用这种方法有什么建议吗?

当我实现这项技术并进入我的应用程序时,就在服务器返回我的列表之前,它命中了应该被延迟加载的每个属性的获取。 您能否解释这个问题或提出解决方案?

编辑:看来您可以使用XMLIgnore属性,因此在序列化过程中不会看到它。.尽管仍然在阅读


不要在服务接口上进行延迟加载。定义显式DTO,并将其用作WCF中的数据协定。

您可以使用NHibernate(或其他ORM)来正确获取构造DTO所需的对象。


对于任何远程处理架构,您都将希望避免以不受控制的方式"沿线"加载完整的对象图(除非您的对象数量很少)。

Wikipedia文章对标准技术进行了总结(包括C#。)。我已经使用了幽灵和价值持有者,它们工作得很好。

要实施这种技术,请确保您严格分开关注点。在服务器上,服务合同实现类应该是与数据合同一起工作的代码中唯一的位。在客户端上,服务访问层应该是与代理一起工作的唯一代码。

这样的分层使您可以相对独立于调用服务的UI层和要调用的业务层来调整服务的实现方式。它还为您提供了一半的单元测试机会!


您可以尝试使用基于REST的内容(例如ADO.NET数据服务)并将其透明地包装到客户端代码中。


推荐阅读

    查看linux库类型命令?

    查看linux库类型命令?,系统,工作,信息,状态,电脑,命令,工具,代码,地址,发行,

    服务器重启命令linux?

    服务器重启命令linux?,工作,标准,设备,服务,系统,名称,命令,百度,网络,密码,

    linux服务端常用命令?

    linux服务端常用命令?,工作,地址,系统,网络,基础,命令,标准,工具,信息,管理,l

    linux网卡类型命令?

    linux网卡类型命令?,网络,系统,地址,信息,设备,状态,服务,名称,名字,网卡,如

    linux禁用服务命令行?

    linux禁用服务命令行?,服务,系统,软件,管理,工具,信息,状态,平台,连续,技术,l

    linux停服务常用命令?

    linux停服务常用命令?,地址,工作,系统,命令,服务,信息,标准,管理,代码,进程,l

    linux命令长度设置?

    linux命令长度设置?,地址,工作,命令,管理,环境,系统,信息,目录,文件,参数,Lin

    linux服务器删除命令?

    linux服务器删除命令?,系统,服务,管理,情况,命令,工作,互动,地址,软件,较大,l

    linux双ip设置命令?

    linux双ip设置命令?,地址,系统,代码,网络,设备,服务,通讯,名称,信息,密码,lin

    linux开启服务命令?

    linux开启服务命令?,服务,标准,设备,工作,网络,系统,密码,命令,服务器,终端,

    linux服务器负荷命令?

    linux服务器负荷命令?,信息,电脑,中科,环境,工具,系统,平均,检测,情况,状态,l

    linux用户组命令设置?

    linux用户组命令设置?,管理,系统,密码,代码,电脑,用户组,用户,软件,新增,命

    linux密钥设置命令?

    linux密钥设置命令?,密码,服务,数据,认证,环境,官网,系统,概念,通信,管理,如

    命令行怎么设置linux?

    命令行怎么设置linux?,系统,工作,命令,密码,信息,地方,工具,终端,文件,目录,

    linux常见服务器命令?

    linux常见服务器命令?,信息,工作,标准,地址,设备,系统,情况,时间,状态,命令,

    linux服务器基础命令?

    linux服务器基础命令?,设备,标准,工作,地址,服务,系统,信息,情况,图片,基础,

    服务器linux命令大全?

    服务器linux命令大全?,标准,工作,设备,系统,服务,信息,时间,命令,服务器,级

    重启linux服务器命令?

    重启linux服务器命令?,标准,设备,工作,命令,网络,系统,提示,主机,服务器,接

    linux内核设置命令?

    linux内核设置命令?,系统,信息,工作,管理,地址,命令,名称,情况,发行,目录,如