我有一个处理数据库访问的服务器和一个使用该信息的客户端。从客户端到服务器的通信是通过WCF服务。
当从服务返回NHibernate POCO时,对象图中的所有对象都被序列化了吗?如果是这样,有没有办法改变它?
我也在考虑不返回NHibernate POCO而是返回一个只包含基本信息的对象。
在这些情况下你做了什么?
答案 0 :(得分:6)
使用数据传输对象将数据从服务器移动到客户端。您的业务(域模型)对象不一定暴露在应用程序核心之外,但应被视为受保护资产。
您可以使用AutoMapper自动执行从业务对象到数据传输对象的转换。
答案 1 :(得分:0)
是的,你可能想要一个DTO。通常认为不将数据对象传递给外部世界会更好,但是直接将hibernate对象从服务中传递出来会给你一些奇怪的行为,特别是如果你有懒惰的加载集合。