我想在WPF应用程序中增加数据库功能。你会推荐哪个数据库引擎?为什么?SQLite、SQL CE还是其他?
我想在WPF应用程序中增加数据库功能。你会推荐哪个数据库引擎?为什么?SQLite、SQL CE还是其他?
根据应用的使用情况,我建议使用SQL Lite,因为它不需要安装任何其他软件(SQL CE或Express等通常需要单独安装)。
下面是提供者链接中列出的SQL Lite的最重要的优点:
SQLite是一个小型的C库,实现了一个自包含、可嵌入、零配置的SQL数据库引擎。主要特性包括:
- 零配置 - 不需要设置或管理。
- 实现了大多数SQL92标准。(不支持的特性)
- 一个完整的数据库存储在一个单独的磁盘文件中。
- 可以在具有不同字节顺序的计算机之间自由共享数据库文件。
- 支持高达2TB(2^41字节)大小的数据库。
- 代码占用空间小:不到30K行的C代码,小于250KB的代码空间(i486上的gcc)。
- 对于大多数常见的操作,比流行的客户端/服务器数据库引擎更快。
- 简单易用的API。
- 自包含:没有外部依赖。
- 源码为公共领域。可用于任何目的。
由于您正在使用WPF,我可以假设您至少在使用.NET 3.0。然后,我建议升级到.NET 3.5 SP1(与.NET 3.5大小相同,但包括许多性能改进),其中包括LINQ。
但是,当使用SQLite时,您需要使用以下SQLite提供程序,它应该提供LINQ支持:SQLite数据库引擎的开放源代码ADO.NET提供程序
我在我的WPF应用程序中使用了SQL Compact Edition,对于我的决定感到满意。一切都很顺利(因为WPF和SQLCE都是微软的产品,它们相互协作得很好),而且运行时的安装大小和流程都符合我的需求。我通过Visual Studio创建和修改了数据库。
仅提出不同的观点,我们过去一年一直在使用SQL Compact Edition,并且一般来说对它很满意。配置非常简单,行为与常规MS SQL数据库非常相似。虽然有一些缺失,例如触发器和存储过程,但是SQL 3.5 CE几乎包含了我们需要的所有其他功能。安装时只需2MB的.dll文件。它提供数据库加密、事务处理,并支持VS的类型化数据集设计器(3.1版本存在一些问题,但CE 3.5非常好!)。
SQL CE DLLs可以打包到您自己的应用程序中,无需单独安装。 但是如果您不想学习设置等内容,Microsoft提供了默认的安装包。
此外,SQL CE支持私有部署。
SQLite是一个非常好的产品,虽然我错过了PostgreSQL的一些功能。还有其他一些特别是非SQL的数据库,你可能需要考虑像Berkeley DB。
/Allan
我认同SQLite是一个不错的选择。 Subsonic 2.1现在也支持SQLite了。
SqlCE
。它非常快速和简便。 - Ghasem