我们一直在使用实体空间,并且在我们开始使用 SqlServer 进行会话管理之前,一切都在我们的本地开发机器上运行良好。我们的托管服务 (ITech) 有一个服务器场,因此我们必须让其针对 SqlServer 进行会话管理。
我们看到的问题是保存放置到会话中然后随后检索的对象。对象的行状态被重置为无效而不是添加等。我们联系实体空间寻求帮助,他们的建议是使用“他们的”序列化方法将对象转换为字符串,然后将字符串放入会话中。当我们尝试这样做时,主对象正在正确序列化,但它没有尝试序列化对象图中的任何子对象。例如,一个带有借款人列表的贷款对象。贷款本身会被序列化,但借款人名单不会。
如果我手动序列化为二进制并将其存储到会话中,整个对象图就在那里,但现在我们回到了未正确设置的行状态。我决定通过创建我自己的名为“Status”的行状态属性来解决这个问题。然后,我将在序列化为二进制之前将 Status 属性设置为对象 rowstate。然后我会将行状态从无效翻转到反序列化对象时设置的任何状态。这一切在调试器中“看起来”正确,但是当我告诉它保存时,实体空间没有创建正确的 SQL。它试图在没有实体属性值的情况下进行保存。
有没有其他人尝试过这个,如果是这样,你找到解决方案了吗?