0

我正在处理的应用程序是客户端/服务器,它们之间具有 REST 通信。我想在服务器端使用 db4o。客户端可以更新或创建条目。因此,对象从客户端返回到服务器以从“对象容器外”进行更新。

让:

  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文档,我有 2 个解决方案:1.内部 Uuid 2.手动 Guid 处理

在情况 1. 中,客户端必须具有对 db4o 程序集的引用才能知道特定类型的 db4o.Uuid 是不好的。

在情况 2.(在上面的类定义中隐含)中,Guid 处理很方便,但 db4o 不知道内部 IdHolder 引用。例如:

  • o1 是保存在 DB 中的 IdHolder
  • o2 是带有 o2.Child == o1 的 MyClass

当 o2 被发送到 Server 进行保存时,由于 db4o 不知道 o1 已经存在并且可以通过其 o1.Id 找到,所以将 o1 的重复条目保存在 DB 中。

问题是:使用 db4o 处理断开连接场景的最佳方法是什么?

编辑:

如果文档处理此类问题,则此部分。“合并”。对我来说似乎不是很满意。我对您的概念/技术想法持开放态度。

4

1 回答 1

1

db4o 方面基本上不支持该功能。像文档所说的“合并”基本上是您拥有的最佳选择。

正因为如此,db4o 对于 Web 应用程序来说并不是非常理想的。(而且它也不能扩展,因为它本质上是单线程的。)

于 2012-11-12T16:07:11.893 回答