2009-02-23 106 views
3

我有一个处理数据库访问的服务器和一个消耗信息的客户端。从客户端到服务器的通信是通过WCF服务。从WCF服务返回NHibernate映射类

当NHibernate POCO从服务中返回时,对象图中的所有对象都被序列化了吗?如果是这样,有没有办法改变它?

我也想着不返回NHibernate POCO,而只返回一个只有基本信息的对象。

你在这些情况下做什么?

回答

6

使用数据传输对象将数据从服务器移动到客户端。您的业​​务(域模型)对象不一定会暴露在应用程序的核心之外,但应被视为受保护的资产。

您可以使用AutoMapper自动执行从业务对象到数据传输对象的翻译。

+0

我以前没有听说过这个。看起来正是我需要的。谢谢 – Megacan 2009-02-23 11:02:20

0

是的,你可能想要一个DTO。通常认为不将数据对象传递给外部世界会更好,但是直接从服务中传递hibernate对象可能会给你一些奇怪的行为,特别是当你有懒惰加载的集合时。