【发布时间】:2012-08-20 23:31:54
【问题描述】:
我有一个问题我已经尝试解决了一段时间。
场景如下
此人将在数据库中插入一个新实体。
要开始插入,我需要从 xml 文件进行昂贵的转换以填充一些基本属性。
我想在之前处理这个 xml 并将已经转换为 o 对象的对象存储在一些缺少的缓存中。
在那之后,填充这个对象的其他属性的过程非常耗时,我希望这个人可以在中间停下来,然后再结束它。但是,由于插入此对象时在数据库中进行了一些验证,因此我无法将此对象不完整地保存在数据库中。
我整理的解决方案涉及在人停止填充对象时序列化对象,即使它还没有完成,而不是当人回来继续填充时,我会反序列化对象以便人可以继续。
问题是当我尝试序列化这个对象时,nihibernate 由于延迟加载而序列化几乎整个数据库,并且我得到 stackoverlow 错误(哈哈,在这里说这个错误很有趣,哈哈)。
有人知道我应该怎么做吗?
我所做的其中一件事是将对象保留在缓存中(不知道 /net 4 缓存如何对其进行序列化但接缝工作)但是每次我检索对象时它都会丢失一半的子对象,并且总是正好有一半的孩子....
如果是实时的,我有一个包含 20 个项目的订单,如果我尝试从缓存中取回它,它将返回 10 个项目,如果我再次尝试检索它,我将得到只有 5 个项目的订单。
有人知道如何解决这个问题吗?
已经尝试过了
【问题讨论】:
-
嗨@Gabriel,欢迎来到SO。分享您的代码的相关部分,试图指出哪里问题出在哪里和/或是什么您期望的结果。
-
你用过谷歌翻译吗?这很难理解......除了你想序列化和反序列化从 nhibernate 到 json 的东西并且在中间的某个地方有一个 xml 之外,不确定你真正想要什么......请尝试澄清。
-
对不起,我已经正确的信息,所以我希望它更容易理解 ehat 是问题
标签: c# .net nhibernate caching serialization