默认情况下,使用Visual Studio 2008提供的向导创建本地数据库缓存时,它将为您创建SQL Server Compact版数据库,并使用Sync Framework为缓存和远程SQL Server之间提供同步功能( 1.0)。这允许我们在基于客户端服务器的应用程序中提供脱机功能。
我的问题是,是否可以使用SQL Server Express版本而不是使用SQL Server Compact版本,以便我们可以使用存储过程?所有客户都是在Core 2 Duo上运行的强劲笔记本电脑,因此处理能力根本不是问题。但是,对于我们的用户来说,离线是最有价值的功能。
另外,使用LINQ将所有存储过程代码转换为C#中间层代码需要我们进行一些重大改写。最后也是最重要的是,我们的老板希望业务逻辑在存储过程中。 SQL Server CE不会削减它。
答案 0 :(得分:0)
我唯一警告的是,SQL Server可以占用一些额外的内存(200 - 500兆),而且对于用户来说,为什么他们的计算机一直在消耗这么多内存并不总是显而易见的。如果它们都有足够的RAM,这不是问题,但任何拥有少于2场演出的计算机的人都会注意到这一点。
您也可以将存储过程编写到SQL Server Express中。我已经将SQL Server Express用于某些产品,它非常适合我需要构建的大多数数据库,因为它们从未达到过限制。
答案 1 :(得分:0)
是否可以使用SQL Server EXPRESS版本让我们可以使用 存储过程?
是
您可以使用Click Once来简化安装和部署。
如果需要,您可以通过发出适当的配置命令来限制SQL Express使用的内存量。
由于您的客户使用笔记本电脑,您可以考虑提供一个从应用程序中停止和启动SQL Express的选项,而不是将其作为服务自动启动。
P.S。如果您正在使用SP,则可能不需要LINQ。 ADO.NET可以产生更高性能的代码,特别是如果您可以利用LINQ无法实现的命令批处理,异步查询,多个结果集等功能。
答案 2 :(得分:0)
此article表示Sync Framework 1.0不支持SQL Server Express作为客户端。 Sync Framework 2.0可以支持Express作为客户端。
在Sync Framework 1.0中 -
我们有2个数据库同步提供程序,即 SqlCeClientSyncProvider和DbServerSyncProvider。这些提供商 支持离线(或hub-and-spoke)场景 - 所以,我们只支持客户端DBMS 可以使用SQL Server Compact Edition和我们在服务器端 能够使用SQL Server或任何其他ADO .net兼容的DBMS。
在Sync Framework 2.0中 -
除了旧的提供商,我们还有3个新的数据库 同步提供程序,即SqlSyncProvider,SqlCeSyncProvider, 和DbSyncProvider。这些新提供程序可与Collaboration一起使用 以及离线方案,从而使任何ADO .net兼容 数据库作为客户端或服务器在脱机方案中或作为 合作方案中的同伴。
答案 3 :(得分:0)
评论蒂姆上面的回答。我实际上或多或少与上面的初始问题相同。我目前正在努力通过这些版本的Sync Framework,同步服务,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; - )
Kindest Regards,
Zyxy
答案 4 :(得分:-1)
LocalDataCache生成的自动代码仅在我所知的情况下仅支持SQLCE。在技术上可以将SQL2008 Express同步到SQLServer,但它似乎需要大量代码,并且与VS2008中优雅的SQLCE支持一样简单。