DB4Oのクライアントセッション間でオブジェクトを使用できるようにする方法を見つけようとしています。私の理解では、クライアントセッションが閉じられると、オブジェクトはキャッシュに存在しなくなり、有効なUUIDがあるにもかかわらず、複製を挿入せずにストアを呼び出すことはできません。手動でキャッシュに再追加する方法を探しましたが、そのようなメカニズムはありません。再取得すると、現在は役に立たないオブジェクトからすべての値をコピーする必要があります。
上記のコードの段落は次のとおりです。
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)を介して、これらのシナリオをサポートします。
何かご意見は?