db4o 错误,当对同样具有 object 类型成员的实例的字符串字段使用 UniqueFieldValueConstr

本文关键字:实例 成员 字符串 字段 UniqueFieldValueConstr 类型 object 错误 db4o | 更新日期: 2023-09-27 18:36:30

我想我可能遇到了 db4o 8.0 for .NET 的错误,因为以下内容将产生 StackOverFlow 异常。

public static void Test() {
    var config = Db4oEmbedded.NewConfiguration();
    var field = "ID";
    config.Common.ObjectClass(typeof(TestClass)).ObjectField(field).Indexed(true);
    config.Common.Add(new UniqueFieldValueConstraint(typeof(TestClass), field));
    var db = Db4oEmbedded.OpenFile(config, "test.yap");
    db.Store(new TestClass());
    db.Commit();
}
public class TestClass {
    //[NonSerialized]
    public object DataMember = new object();
    public string ID;
}

就我而言,我能够将数据成员标记为瞬态([非序列化])并避免该问题。

但是,这使得无法在谓词中使用 DataMember(在我的情况下,DataMember 是一个简单的对象,用作所有属性中的锁,但就像没有调用 TestClass 的构造函数一样,因为 DataMember 在谓词中为 null)。

你知道为什么它不起作用吗?我可以提交错误报告吗?

db4o 错误,当对同样具有 object 类型成员的实例的字符串字段使用 UniqueFieldValueConstr

我提交了一个被确认为主要的错误:http://tracker.db4o.com/browse/COR-2296。