posts - 171,  comments - 4227,  views - 137万

先来看一个简易类图:

ClassDiagram1

如果你打算将这样的类存储在Db4o中的话,那么会很容易产生灵异现象,我今天就亲历了……

产品对象添加一个附图后保存,下次重新开启数据库时读取到的产品附图仍然是空的,而如果你在数据库中检索照片的话,你还是能找到你用作附图照片对象的,但就是没法和产品对象关联起来,无论设定透明激活、层叠激活还是指定深度激活,都没有任何效果,简直太恼人了。

简单猜想来就是Db4o数据库中将类的继承搞的比较乱,导致引用断开,对象孤立。

然而,上图还只是一个示意的简图,我在实际项目中,产品附图属性是一个照片对象的集合,还有一个封面图片属性,对应的是一个单独的照片对象,此外产品还有一个产品分类属性,对应的是产品分类的集合对象,产品分类又继承自分类,也继承自基类,使用时产品分类属性是完全没有问题的,其他两个则都如上文所述的情况一般无法获取,这又让人很难将问题完全归结于继承所致。

最后经过N多次尝试,将所有类简化为无继承的简单类型,问题就解决了,错误原理仍然不明,有待日后研究。

 

2010年10月3日 

经再次盘查,最终导致问题解决的原因不是剔除继承关系,而是我在解决问题期间尝试对该类进行了全层次激活声明,这样就可以顺利激活了,而原本我都是仰赖新版本db4o的透明激活特性,让db4o自己负责激活层次的,没想到这玩意不靠谱,新的小记参看这里:http://www.cnblogs.com/SkyD/archive/2010/10/03/1841729.html 

posted on   斯克迪亚  阅读(746)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示