db4o继承的对象没有被索引:bug还是设计?

时间:2012-08-13 20:26:14

标签: c# db4o

似乎db4o将忽略配置参数,您尝试索引从另一个对象继承的对象上的字段。例如,如果我有以下内容:

public class foo
{
    private int theId;
    public int TheId {get{return theId;}set{theId=value;}}
}

public class bar:foo
{
    private string name;
    public string Name{get{return name;}set{name=value;}}
}

我的配置可能类似于:

IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();
config.Common.ObjectClass(typeof(foo)).ObjectField("theId").Indexed(true);

这将有效。但是,如果我尝试这样做:

IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();
config.Common.ObjectClass(typeof(bar)).ObjectField("theId").Indexed(true);

忽略配置; barTheId未编入索引。

我可以看到为什么这可能是设计的,但我找不到引用此行为的文档,或者注意到这可能是“陷阱”。它是一个错误,还是设计?在我看来,可能有很多次你想要仅在特定的子类上索引字段。

1 个答案:

答案 0 :(得分:2)

我认为这是设计上的。您只能对声明它的类的索引字段。这也适用于所有子类。

Afaik,现在无法仅在子类上索引继承的字段。

this添加了文档任务。