基于.NET3.5的最佳策略,用于创建断开连接的db应用

时间:2009-04-08 14:40:32

标签: c# database .net-3.5 ado.net

我的要求是:

  • 相对较小的数据库:25-30个表,每个表4-5k行。
  • 4-5位用户在自己的笔记本电脑上拥有自己的本地数据库副本。在需要时或在一天结束时同步。
  • 免费解决方案,因为正在为NFP ogranization进行此设置。

    我在过去几天一直在研究各种选择。最后我考虑缩小到数据集,同时将它们序列化为XML,但似乎这不是一个好主意(我以前的问题的答案强烈建议。)

    所以我现在的问题是我应该采用什么方法(数据库和访问技术)?我想使用c#和一种易于使用的技术来访问我的数据库并在一天结束时同步它。

    根据这个链接:http://msdn.microsoft.com/en-us/library/8fxztkff.aspx,MS建议两种不同的方法。我很惊讶他们在这里没有提到LINQ。

    那么小组,你推荐什么样的路径?

    非常感谢阅读。

  • 5 个答案:

    答案 0 :(得分:6)

    添加 - >新 - > “本地数据库缓存”。这应该提供您需要的所有同步(通过ADO.NET Sync Framework),默认情况下由SQL CE运行(IIRC),这是(我相信)免费。

    答案 1 :(得分:4)

    查看Microsoft Sync Framework

      

    介绍Microsoft Sync   框架 - 全面   同步平台启用   协作和离线   应用程序,服务和设备   支持任何数据类型,任何   数据存储,任何传输协议和   网络拓扑。

    答案 2 :(得分:3)

    如果已有SQL Server(标准版或更高版本),则可以使用SQL Server复制服务将数据库的本地副本同步到用户计算机上的SQL Express或SQL Server Compact实例(这两者都是是免费的。

    有关详细信息,请try here

    听起来您正在考虑合并复制方案。

    答案 3 :(得分:2)

    微软有一种模式,他们称之为Occasionally Connected Client

    答案 4 :(得分:2)

    到OP:

    我将在Sync框架前面给你的一个警告是在整个版本中升级数据库模式。我正在我正在开发的project上使用它,并且我正在启动“2.0”规范,我已经决定将其删除,原因各种各样。

    我强烈建议您花时间了解您希望在进展时如何处理架构更改,并确定这是否是您想要的方式。对我来说,这是让系统启动并运行,但现在我正在处理噩梦,我正在成为NIH情景的牺牲品。

    我对2.0的看法是继续为客户端使用SqlCE,为SQL使用SQL Server 2008 ...但是基于大量使用反射和一组“DTO”对象来推送我自己的Sync Fx。 / p>