我正在做一个相当大的WSSF项目。我在业务层中有一个普通的对象模型。例如,客户有一个orders集合属性,当它被访问时,它将从数据层加载(惰性加载)。订单有一个productCollection属性,等等。
现在我发现棘手的一点是通过WCF来暴露这一点。我想导出一组订单。客户端应用程序还需要有关客户的信息。我使用WSSF数据合约设计器对其进行了设置,以便客户拥有一个名为"order collection“的属性。如果您有一个customer对象并且想要查看orders,这是很好的,但是如果您有一个order对象,则没有customer属性,因此它不能在层次结构中向上运行。
我尝试向orders对象添加一个customer属性,但是代码在加载数据契约时陷入循环。这是因为它不像业务层那样按需加载。我需要先加载所有属性,然后才能通过WCF发送对象。它最终加载一个订单,然后是该订单的客户,然后是该客户的订单,然后是该订单的客户,依此类推。
我确信我把这一切都搞错了。救命!!
发布于 2010-02-08 15:56:51
一般而言,使用WCF时,最好不要将契约视为“远程对象”,而应将其视为您可以调用以获取数据或向其传递数据的接口。
在返回的对象上调用的任何方法都是在本地处理的,而不是在对象起源的地方处理。事实上,从服务器获取两次“相同”的对象通常会在客户端产生两个完全不同的对象!
为了获得你想要的功能,你可能需要编写一些客户端代码来为你创建一个远程对象“幻觉”。
https://stackoverflow.com/questions/2220074
复制相似问题