使用WPF应用程序的数据库功能:SQLite,SQL CE等?
我想扩展具有数据库功能的WPF应用程序。我们将建议使用哪个数据库引擎,为什么? SQLite,SQL CE,其他?
解决方案
回答
根据应用程序的使用,我建议使用SQL Lite,因为它不需要我们安装任何其他软件(SQL CE或者Express等,通常需要单独安装)。
这篇文章底部的provider链接列出了SQL Lite最重要的好处:
SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine. Features include: Zero-configuration - no setup or administration needed. Implements most of SQL92. (Features not supported) A complete database is stored in a single disk file. Database files can be freely shared between machines with different byte orders. Supports databases up to 2 terabytes (2^41 bytes) in size. Small code footprint: less than 30K lines of C code, less than 250KB code space (gcc on i486) Faster than popular client/server database engines for most common operations. Simple, easy to use API. Self-contained: no external dependencies. Sources are in the public domain. Use for any purpose.
由于我们使用的是WPF,因此我可以假定我们至少使用了.NET 3.0。然后,我建议使用包含LINQ的.NET 3.5 SP1(与.NET 3.5大小相同,但包括许多性能改进)。
但是,在使用SQLite时,我们需要使用以下应提供LINQ支持的SQLite提供程序:SQLite数据库引擎的开源ADO.NET提供程序
回答
我同意SQLite是必经之路。
Subsonic 2.1现在也包括SQLite支持。
回答
尽管我错过了PostgreSQL的功能,但SQLite是一个非常不错的产品。我们还可以考虑使用其他数据库,尤其是非SQL数据库,例如Berkeley DB。
/艾伦
回答
只是为了提出不同的意见,去年我们一直在使用SQL Compact Edition,并且普遍对此感到满意。该配置非常简单,其行为与常规的MS SQL数据库非常相似。缺少一些东西,例如触发器和存储过程,但是SQL 3.5 CE实际上具有我们需要的所有其他东西。要安装大约2Mb的.dll。它提供数据库加密,事务处理,并支持VS的类型化数据集设计器(3.1出现了一些问题,但是CE 3.5很棒!)。
回答
我在WPF应用程序中使用了SQL Compact Edition,我对自己的决定感到满意。一切都可以正常工作(因为WPF和SQLCE都是MS,它们可以很好地配合使用),并且运行时的安装足够小并且足够满足我的需求。我通过Visual Studio创建和修改了数据库。
回答
SQL CE DLL可以打包到我们自己的应用程序中,不需要单独安装。但是,如果我们不想了解安装程序等信息,则MS提供了默认的安装程序包。
此外,SQL CE支持私有部署。