码迷,mamicode.com
首页 > 数据库 > 详细

关于db4o的透明激活与激活声明

时间:2017-05-08 23:28:10      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:通过   介绍   objectc   html   figure   .com   targe   问题   object   

有关于透明激活,其介绍可以参看这里:http://www.cnblogs.com/redmoon/archive/2008/02/23/1078619.html

文中指出通过透明激活特性,db4o能够帮我们自动处理激活层次问题,使得对象的属性为非基础类型时也能够自动按需加载。

我不明白其运作原理是如何的,但很坦然地使用了它,直到遇到一个加载集合属性的子项总为空时,挠墙无解~

一度怀疑是db4o对类继承的支持存在BUG~

后来发觉声明全部层次激活(Db4oFactory.Configure().ObjectClass(typeof(MyClass1)).CascadeOnActivate(true))后,那个属性就能够成功获取了,可见这个问题还是源自透明激活——它还不够智能

引发问题的属性是一个List<>集合属性,而其他属性别管是基础类型还是自定类型的都没问题,所以猜测也许是透明激活还未对集合支持。

关于激活声明,还有点要注意的,例如以下这种激活层次说明:

Db4oFactory.Configure().ObjectClass(typeof(MyClass1)).CascadeOnUpdate(true);
Db4oFactory.Configure().ObjectClass(typeof(MyClass1)).CascadeOnActivate(true);

需注意的是,其中高亮部分的类型不应为抽象类或接口,应该是一个明确的绝对类型(即如果你希望某类及其父类都被指定这种声明的话,你需要分别为它们声明,而不能只声明父类),否则它是不起作用的。

 
 
转载:http://www.cnblogs.com/SkyD/archive/2010/10/03/1841729.html

关于db4o的透明激活与激活声明

标签:通过   介绍   objectc   html   figure   .com   targe   问题   object   

原文地址:http://www.cnblogs.com/tianciliangen/p/6827966.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!