有没有人使用(或考虑使用)Sql Server Compact Edition?

时间:2008-10-10 09:35:33

标签: sql-server database windows-mobile sql-server-ce

我一直在准备提供有关SQL Server Compact Edition 3.5(SP1 - 最近发布)的演示文稿,我想知道是否有人设计(或考虑设计)具有SQL Server CE 3.5(或更早版本)的系统?

特别是,有没有人想过(或经历过)使用SQLCE作为离线数据存储的解决方案(作为连接系统设计的一部分)?

与其前辈相比,版本3.5看起来相当丰富,是否可以认真考虑(现在它支持LINQ to SQL,标识列和各种重要的T-SQL)?

如果你需要一个轻量级的低占用空间的基于文件的数据库(特别是如果它需要在移动设备和桌面系统上支持),或者是否有更好的选择,你会考虑使用它吗?

9 个答案:

答案 0 :(得分:9)

在工作中,我们最近不得不将专为SQL Server Express设计的项目迁移到SQLCE。起初我认为它会很糟糕,主要是因为没有存储过程。一旦我们开始挖掘它,并看到它提供的东西,我们确信这是正确的举措。它支持LINQ,查询很多数据比我们想象的要快得多。插入和更新速度有点慢,但实际上并不太糟糕。我们遇到的唯一问题是A)Management Studio 2005不支持它,虽然2008年确实如此,但它非常有限。不知道为什么,希望他们会在未来的版本中改变它,但它会让我感到害怕。 B)当尝试将现有SQL Server数据库迁移到SQLCE时,实际上没有简单的方法可以从现有模式创建模式,并移动所有数据。您可能必须使用自己的工具(我们必须)。

尽管如此,最终的结果却是惊人的。由于用户不必安装SQL Express,因此安装时间减少到三分之一,并且应用程序在内存较少的计算机上运行得更顺畅。总而言之,我对它的实际效果感到惊讶。

答案 1 :(得分:6)

我尝试了几个版本的SQLCE并且最终总是使用优秀的ADO.NET SQLite implementation - 它更轻,更快,更容易使用(至少对我而言),它几乎可以跨所有平台移植。 / p>

答案 2 :(得分:4)

我目前在业务应用程序中使用SQL CE和NHibernate,其中SQL CE数据库通过WCF与Sync Framework同步到SQL 2008服务器。奇迹般有效! 特别是从nhibernate映射文件生成数据库真是太棒了。

但即使使用linq2sql也能正常工作!

答案 3 :(得分:0)

多次尝试过SQLCE。总是最终使用其他东西(Firebird(嵌入式),SQLite,VistaDB)。 IMO SQLCE仅限于在或多或少的复杂场景中使用。虽然我对最新版本(3.5)没有实际经验,但我怀疑它仍然很糟糕:)

答案 4 :(得分:0)

我帮助开发和维护使用SQL Server CE 2.0的PDA软件。只要你知道限制在哪里,我认为没关系。

答案 5 :(得分:0)

我曾经使用过一次SQLCE,这是我在求职面试中得到的一项练习,这就足够了。现在,每当我需要这样的功能时,我都会使用sqlite或firebird。

SQLCE对该练习的可用性非常好。它很快,具有良好的可视化编辑器,并且很好地集成到Visual Studio中。

结论:如果你可以处理SQLCE的限制,你确定你不需要更多 - 使用它。

答案 6 :(得分:0)

如果在移动设备上使用,则无法使用Linq to SQL。

我们使用它并且它很好,但Linq到Dataset不如Linq to SQL

答案 7 :(得分:0)

我们在一年或两年前的一个项目中使用了SQLCE(我相信3.0版) 我遇到的问题是它需要安装,而不是XCOpy可部署的。表演也很可怕。我们每秒做大约20次插入,这可能超出了它的能力,但它绝对无法处理它。 性能和部署问题使我确信有更好的替代方案。我的下一个项目将使用SQLite或VistaDB。

我在Mac上使用了SQLite,在开发中使用了IPhone,它在这两个平台上都表现得非常好。

答案 8 :(得分:0)

如果将SQLCE 3.5 SP1与Entity Framework一起使用,则会出现问题。将一些参数传递给查询时基本上存在问题。 解决方法是卸载SQLCE并安装另一个作为修补程序发布的版本。问题在于尝试将SQLCE包含在安装项目中。 有关该主题的更多信息,请参见此主题:http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/b6bac277-cf66-4c74-a0b3-e48abedbd161

另一个奇怪的问题是带有实体框架的SQLCE 3.5 SP1无法在64位系统上运行,除非您将其构建为目标x86(http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/aa5850bb-34fe-4064-82b0-4a7cac675c91/