2

首先:我们使用 Visual Studio 2010、.Net 4 和 SQL Server 2008 R2(和 C#)

我们目前正在将旧应用程序迁移到 .Net。事实上,这是一个完整的重写。

该应用程序将是一个服务器-客户端设置,完全符合“偶尔连接”的描述。

典型安装涉及 10 个客户端和一台服务器。客户端正在从数据库访问一个半静态数据池(我们称之为核心数据)。

客户每天还会将一系列新条目(大约 700 到 800 个)添加到另一个表中。让我们称之为“帖子”。

现在我们想要一个本地数据库作为缓存,有两个目的:

  1. 对于我们的主要客户,核心数据包含大约 200000 个条目,每天大约有 100 次更改。我们想在客户端缓存这些数据,因为我们需要快速访问它。

  2. 对于其他几个较小的客户,我们没有运行专用服务器。其中一台客户端机器正在做这项工作。如果用户关闭“服务器”,客户端将无法保存新帖子。这实际上是一个严重的问题,并且经常发生(未经培训的用户)。为此,我们需要某种缓存。

现在,我读到了可以通过 Visual Studio 添加的本地数据库缓存,我已经尝试过了。

理论上,这正是我们所需要的。然而,实际上我遇到了一些困难:

  1. 我注意到在创建本地缓存数据库时,本地数据库中缺少外键关系。我看到这被记录为“按预期工作”,但是我无法找到有关如何正确包含它们的说明,因此我可以在本地数据库中依赖它们并且我仍然可以同步。

    在我自己添加关系后,我仍然遇到了同步问题:

    我有两个表,表 A 和表 B。我在表 A 上添加了一个条目,在表 B 上添加了 30 个条目,引用表 A 中的条目。

    在同步表 A 已正确同步 - 在表 B 上没有同步条目。

    我在表 B 中添加了另外 30 个条目并尝试再次同步。这次它忽略了前 30 个条目并尝试仅同步新的 30 个条目。其中它只成功同步了一个。我显然在这里遗漏了一些东西。

  2. 一个纯粹的理论问题:同步可以是“仅上传”、“仅下载”等。我们需要的是“仅发布”之类的东西。因为我无法让整个设置正常工作,所以我会在没有自己测试的情况下添加这个问题:

    如果我同步“仅上传”并在同步后清除本地数据库中的所有条目会发生什么?下次同步时它会从服务器中删除条目吗?如果是,我们是否仍然可以为此目的使用同步服务,还是应该使用数据集并将条目手动发布到服务器?

4

0 回答 0