似乎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);
忽略配置; bar
。TheId
未编入索引。
我可以看到为什么这可能是设计的,但我找不到引用此行为的文档,或者注意到这可能是“陷阱”。它是一个错误,还是设计?在我看来,可能有很多次你想要仅在特定的子类上索引字段。