【发布时间】:2011-05-01 14:30:14
【问题描述】:
我试图弄清楚如何在 DB4O 中的客户端会话之间保持对象可用。据我了解,一旦客户端会话关闭,该对象就不再驻留在任何缓存中,尽管我有一个有效的 UUID,但我无法在不插入重复项的情况下对其调用 Store。我搜索了一种手动将其重新添加到缓存中的方法,但没有这种机制。重新检索它将迫使我从现在无用的对象中复制所有值。
这是上面的代码段:
Person person = new Person() { FirstName = "Howdoyu", LastName = "Du" };
Db4oUUID uuid;
// Store the new person in one session
using (IObjectContainer client = server.OpenClient())
{
client.Store(person);
uuid = client.Ext().GetObjectInfo(person).GetUUID();
}
// Guy changed his name, it happens
person.FirstName = "Charlie";
using (var client = server.OpenClient())
{
// TODO: MISSING SOME WAY TO RE-USE UUID HERE
client.Store(person); // will create a new person, named charlie, instead of changing Mr. Du's first name
}
最新版本的 Eloquera 通过 [ID] 属性或通过 Store(uid, object) 支持这些场景。
有什么想法吗?
【问题讨论】:
标签: c# .net db4o object-oriented-database oodb