我正在处理的应用程序是客户端/服务器,它们之间有REST通信。我想在服务器端使用db4o。客户端可以更新或创建条目。因此,对象从客户端返回到服务器以从“从ObjectContainer”开始更新。
让:
public class IdHolder
{
public Guid Id {get; set;}
}
public class MyClass : IdHolder
{
public string SomeData {get; set;}
public IdHolder Child {get; set;}
}
如您所见,MyClass类引用了IdHolder。
根据db4o documentation我有2个解决方案: 内部的Uuid 2.手动指导处理
在第1种情况下,客户端必须引用db4o程序集才能知道特定类型的db4o.Uuid,这是不好的。
在案例2中(这在上面的类定义中是隐含的),Guid处理很方便,但db4o不知道内部IdHolder引用。例如:
当o2被发送到Server进行保存时,o1的重复条目保存在DB中,因为db4o不知道o1已经存在并且可以通过其o1.Id找到。
问题是:使用db4o处理断开连接的场景的最佳方法是什么?
修改
This part if the doc处理此类问题。 “合并”。对我来说似乎不太满意。我对你的概念/技术想法持开放态度。
答案 0 :(得分:1)
在db4o端基本上没有支持。像文档所说的'merging'基本上是你得到的最佳选择。
db4o对于网络应用来说并不是最佳选择,因为这样。 (它也不会扩展,因为它本身就是单线程的。)