7

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

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

与之前的版本相比,3.5 版看起来功能非常丰富,是否已准备好认真考虑(现在它支持 LINQ to SQL、标识列和各种重要的 T-SQL)?

如果您需要基于文件的轻量级、低占用空间的数据库(尤其是需要移动设备和桌面系统支持时),您会考虑使用它,还是有更好的选择?

4

9 回答 9

9

在工作中,我们最近不得不将一个专为 SQL Server Express 设计的项目迁移到 SQLCE。起初我认为这会很糟糕,主要是因为没有存储过程。但是,一旦我们开始深入研究它并看到它提供的功能,我们就确信这是正确的举动。它支持 LINQ,查询大量数据比我们想象的要快得多。插入和更新有点慢,但真的一点也不差。我们真正遇到的唯一问题是 A) Management Studio 2005 不支持它,虽然 2008 支持它,但它非常有限。不知道为什么,希望他们会在未来的版本中改变它,但它让我大吃一惊。B) 当试图将现有的 SQL Server 数据库迁移到 SQLCE 时,真的没有简单的方法可以从现有的数据库中创建模式,并移动所有数据。您可能必须推出自己的工具才能做到这一点(我们必须这样做)。

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

于 2008-10-10T10:47:47.923 回答
6

我尝试了几个版本的 SQLCE,最后总是使用出色的 ADO.NET SQLite 实现——它更轻、更快、更容易使用(至少对我来说是这样),而且它几乎可以跨所有平台进行移植。

于 2008-10-10T09:42:24.060 回答
4

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

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

于 2008-10-10T10:45:14.760 回答
0

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

于 2008-10-10T10:15:57.893 回答
0

我帮助开发和维护了一个使用 SQL Server CE 2.0 的 PDA 软件。我认为只要您知道限制在哪里就可以了。

于 2008-10-10T10:40:10.683 回答
0

我曾经使用过一次 SQLCE,作为我在工作面试中收到的练习,这已经足够了。现在,每当我需要这样的功能时,我都会使用 sqlite 或 firebird。

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

底线:如果您可以处理 SQLCE 的限制,并且您确信您不需要更多 - 使用它。

于 2008-10-10T10:45:26.710 回答
0

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

我们使用它,它很好,但是 Linq to Dataset 不如 Linq to SQL 好

于 2008-10-23T22:10:52.643 回答
0

一年或两年前,我们在一个项目中使用了 SQLCE(我相信是 3.0 版)。
我遇到的问题是它需要安装,不是 XCOpy 可部署的。表演也很糟糕。我们每秒进行大约 20 次插入,这可能超出了它的能力范围,但它肯定无法处理它。性能和部署问题让我相信还有更好的选择。我的下一个项目将使用 SQLite 或 VistaDB。

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

于 2008-12-18T22:56:35.070 回答
0

如果将 SQLCE 3.5 SP1 与实体框架一起使用,则会出现问题。基本上在将一些参数传递给查询时会出现问题。解决方法是卸载 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/ )

于 2009-06-22T05:17:18.913 回答