我想扩展具有数据库功能的 WPF 应用程序。您会建议使用哪种数据库引擎,为什么?SQLite,SQL CE,其他?
6 回答
根据使用的应用程序,我建议使用 SQL Lite,因为它不需要您安装任何其他软件(SQL CE 或 Express 等通常需要单独安装)。
这篇文章底部的提供者链接中列出了 SQL Lite 最重要的好处:
SQLite 是一个小型 C 库,它实现了一个自包含、可嵌入、零配置的 SQL 数据库引擎。特点包括:
- 零配置 - 无需设置或管理。
- 实现大部分 SQL92。(不支持的功能)
- 完整的数据库存储在单个磁盘文件中。
- 数据库文件可以在不同字节顺序的机器之间自由共享。
- 支持大小高达 2 TB(2^41 字节)的数据库。
- 代码占用空间小:少于 30K 行 C 代码,少于 250KB 代码空间(i486 上的 gcc)
- 对于大多数常见操作,比流行的客户端/服务器数据库引擎更快。
- 简单易用的 API。
- 自包含:没有外部依赖。
- 来源在公共领域。用于任何目的。
由于您使用的是 WPF,我可以假设您至少使用的是 .NET 3.0。然后,我建议使用 .NET 3.5 SP1(与 .NET 3.5 大小相同,但包含一系列性能改进),其中包括 LINQ。
但是,在使用 SQLite 时,您可能希望使用以下应该提供 LINQ 支持的 SQLite 提供程序:SQLite 数据库引擎的开源 ADO.NET 提供程序
我将 SQL Compact Edition 与我的 WPF 应用程序一起使用,我对自己的决定感到满意。一切正常(因为 WPF 和 SQLCE 都是 MS,它们可以很好地协同工作),并且运行时的安装足够小且足够流畅,可以满足我的需要。我通过 Visual Studio 创建和修改了数据库。
只是抛出一个不同的意见,我们去年一直在使用 SQL Compact Edition,并且总体上很满意。配置很简单,它的行为与常规的 MS SQL 数据库非常相似。缺少一些东西,比如触发器和存储过程,但是 SQL 3.5 CE 几乎拥有我们需要的所有其他东西。要安装大约 2Mb 的 .dll。它提供数据库加密、事务,并支持 VS 的类型化数据集设计器(3.1 有一些问题,但 CE 3.5 很棒!)。
SQL CE DLL 可以打包到您自己的应用程序中,无需单独安装。但是 MS 提供了一个默认的安装包,如果你不想了解 setup ...等。
更重要的是,SQL CE 支持私有部署。
SQLite 是一个非常好的产品,虽然我怀念 PostgreSQL 的功能。还有其他的,尤其是非 SQL 的数据库,你可以考虑,比如 Berkeley DB。
/艾伦
我同意 SQLite 是要走的路。Subsonic 2.1 现在也包括 SQLite 支持。