0

我正在做一个相当大的 WSSF 项目。我在业务层有一个普通的对象模型。例如,客户有一个订单集合属性,当它被访问时,它会从数据层加载(延迟加载)。订单具有 productCollection 属性等。

现在我发现棘手的一点是通过 WCF 公开它。我想导出一组订单。客户端应用程序还需要有关客户的信息。使用 WSSF 数据合同设计器,我已对其进行了设置,以便客户拥有一个名为“订单集合”的属性。如果您有一个客户对象并想查看订单,这很好,但是如果您有一个订单对象,则没有客户属性,因此它在层次结构中不起作用。

我尝试将客户属性添加到订单对象,但是当它加载数据合同时代码卡在一个循环中。这是因为它不像业务层那样按需加载。在通过 WCF 发送对象之前,我需要加载所有属性。它最终加载一个订单,然后是该订单的客户,然后是该客户的订单,然后是该订单的客户等等......

我确定我错了。帮助!!

4

1 回答 1

0

通常,对于 WCF,最好不要将合约视为“远程对象”,而是将其视为您可以调用以从中获取数据或将数据传递给的接口。

在返回的对象上调用的任何方法都在本地处理,而不是对象的来源。事实上,两次从服务器获取“相同”对象通常会在客户端产生两个完全独立的对象!

要获得您所询问的那种功能,您可能需要编写一些客户端代码来为您创建一个远程对象“幻象”。

于 2010-02-08T07:56:51.000 回答