正如您所知道的,当我们使用延迟模式检索NHibernate中的数据时,代理对象将创建真正的对象来保持连接跟踪,如果我们需要加载数据的其余部分等等,但是当您想序列化该对象以通过Web Api (例如)发送它时,您将得到一个错误,它说您有一个代理对象,并且它不能序列化,有许多方法可以使这个代理保持沉默。
- NhibernateUtil库
- 3 3rdParty图书馆
-编写一段代码,在序列化过程中查找代理对象,并使代理属性离开。
我正在寻找最好的模式来做到这一点,有谁也做了它以及准备与我们分享它吗?
发布于 2017-03-22 07:13:16
将NHibernate实体(代理)对象转换为DTO对我来说更好。请参考此question。
这样做,您可以自由地使用DTO的方式。在使用NHibernate实体对象时存在多个问题,到处都是如此。
可以通过将实体转换为DTO来克服这些问题。
请注意,这种方法还有其他一些问题,我刚才也提到过。
https://stackoverflow.com/questions/42941200
复制相似问题