3

默认情况下,当您使用 Visual Studio 2008 提供的向导创建本地数据库缓存时,它会为您创建一个 SQL Server Compact 版本数据库,并使用 Sync Framework (1.0) 为您提供缓存和远程 SQL Server 之间的同步能力。这使我们能够在基于客户端服务器的应用程序中提供离线功能。

我的问题是,不使用 SQL Server Compact 版本,是否可以使用 SQL Server Express 版本以便我们可以使用存储过程?所有客户端都是在 Core 2 Duo 上运行的强大笔记本电脑,因此处理能力根本不是问题。不过,对于我们的用户来说,离线是最有价值的功能。

另外,使用 LINQ 将所有存储过程代码转换为 C# 中间层代码需要我们进行一些重大的重写。最后也是最重要的一点,我们的老板希望业务逻辑在存储过程中。SQL Server CE 只是不会削减它。

4

5 回答 5

0

是的,你可以这样做。您可以让安装程序将 SQL Server Express 安装到他们的计算机上。

不过,我唯一要警告的是,SQL Server 可能会占用一些额外的 RAM(200 - 500 兆),而且您的用户并不总是很清楚为什么他们的计算机一直在消耗如此多的 RAM。如果他们都有足够的 RAM,这不是问题,但任何拥有少于 2 个演出的计算机的人都可能会注意到这一点。

您也可以将存储过程写入 SQL Server Express。我已经将 SQL Server Express 用于某些产品,它非常适合我需要构建的大多数数据库,因为它们从未达到限制。

于 2009-12-02T17:47:58.513 回答
0

是否可以使用 SQL Server EXPRESS 版本以便我们可以使用存储过程?

是的。

您可以使用 Click Once 来简化安装和部署。

如果需要,您可以通过发出适当的配置命令来限制 SQL Express 使用的内存量。

由于您的客户使用笔记本电脑,您可能会考虑在您的应用程序中提供停止和启动 SQL Express 的选项,而不是让它作为服务自动启动。

PS 如果您使用的是 SP,您可能不需要 LINQ。ADO.NET 可以产生更高性能的代码,特别是如果您可以利用 LINQ 无法实现的命令批处理、异步查询、多个结果集等功能。

于 2009-12-03T10:45:10.153 回答
0

本文指出Sync Framework 1.0 不支持将 SQL Server Express 作为客户端。Sync Framework 2.0 可以支持 Express 作为客户端。

在同步框架 1.0 中 –

我们有 2 个可用的数据库同步提供程序,即 SqlCeClientSyncProvider 和 DbServerSyncProvider。这些提供程序支持离线(或中心辐射)方案——因此,我们可以使用的只有客户端 DBMS 是 SQL Server Compact Edition,而在服务器端,我们能够使用 SQL Server 或任何其他与 ADO .net 兼容的 DBMS。

在同步框架 2.0 中 –

除了旧的提供程序,我们还有 3 个新的数据库同步提供程序,即 SqlSyncProvider、SqlCeSyncProvider 和 DbSyncProvider。这些新的提供者可以与协作以及离线场景一起使用,从而使任何与 ADO .net 兼容的数据库都可以在离线场景中作为客户端或服务器参与,或者在协作场景中作为对等方参与。

于 2012-04-17T21:43:26.197 回答
0

评论蒂姆上面的回答。实际上,我的问题与上面的初始问题大致相同。我目前正在努力解决 Sync Framework、Sync Services、SQL Server 版本等的这些版本难题,以及哪个版本可以使用什么。

我发现蒂姆提到的文章中有一个矛盾(上图):

根据本文对问题 #13 的回答,似乎 SQL Compact 是唯一可以与 SF 1.0 一起使用的。对于所有在 ASP.NET 上开发并坚持使用 SF 1.0 的人来说太糟糕了,因为在尝试将 SQL Compact 与 ASP.NET 结合时会出现异常(我自己搞定了)。除非可能有 SQL CE v4?

“SQL Server Compact 不适用于 ASP.NET 开发。”

例如:

http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/b8763568-c7b0-4e4a-bdf3-14969a0f67a0/

根据同一篇文章的问题 #3 的回答,SF 1.0 默认安装在 SQL Server 2008 和 SQL Server Express 2008 中。我可以证明这一点,我没有要求它,当我安装我的东西时它就在那里在客户端 Express 上。

这是增加混乱的许多事情之一:我们怎么能很容易地弄清楚在每个场景/设置中使用什么或我们可以使用什么?

如果它可以帮助回答最初的问题,经过一周的深入研究和在最简单的可能场景中与同步相关的 C# 中的挣扎,以下是我的发现: 因为 SF 1.0 安装了 SQL Express 2008,所以可以得出结论,它们是可用的一起。错误的。我什么都试过了。我在互联网上找到的关于将两者结合的信息很少,因此它们不能一起使用。不要浪费你的时间。是的,您可以使用 SQL Express,但只能使用 Sync Framework 2.0。这是我个人的结论。现在我知道了,我即将在客户端上安装 Sync Framework 2.0(尽管复杂的 RFC 和批准过程阻止我在服务器端安装任何东西)。我相信集中式模型(客户端连接到中央服务器但不连接在一起,并且服务器本身没有安装 Web 应用程序/IIS),Sync Framework 的使用仅供客户端使用。有道理?

无论如何,感谢蒂姆分享这个。我已经阅读了常见问题解答,但是通过查看您的帖子,我重新阅读并意识到我真的应该安装 2.0 ;-)

最亲切的问候,

关注

于 2012-08-17T16:02:58.403 回答
-1

据我所知,LocalDataCache 的自动代码生成仅支持 SQLCE。从技术上讲,将 SQL2008 Express 同步到 SQLServer 是可行的,但它似乎需要大量代码,而且远没有 VS2008 中优雅的 SQLCE 支持那么简单。

于 2011-11-30T05:59:36.423 回答