我对以下的不同感到有些困惑:
我的要求是开发一个使用基本RDBMS功能的桌面应用程序。我需要打包应用程序并允许用户安装单个分布式软件包。我不希望用户安装SQL server express。
在这种情况下,我应该使用哪个DB? SQLite不被认为必须进行太多的重新编码。
谢谢。
答案 0 :(得分:2)
SQL Server Express是功能齐全的DBMS,在数据库大小和允许使用的资源方面存在一些限制。您可以看到它的限制(相对于SQL Server)on microsofts site (Features Supported by the Editions of SQL Server 2012)
SQL Server CE是嵌入式数据库,意味着它以用户模式运行,易于部署(需要您只复制几个程序集),轻量级但速度快,可由低权限用户运行。它得到了NHibernate的支持。但是,有更多的限制。对我来说最值得注意的是,当您尝试与同一数据库建立多个连接时会出现问题。尽管MS声称支持此功能,但如果在Windows 2008服务器中尝试此功能,则会失败。更糟糕的是,这种使用场景可能会导致数据库损坏。这意味着在服务/网站运行时,您将无法使用某些管理工具更新数据。此外,SQL Server Management Studio不再支持SQL CE,因此您必须使用第三方工具,如Database.NET。它也不支持子查询。
localDB,没有使用它,听起来像是妥协。它是一个独立的数据库,以用户模式执行(可由低权限用户使用),但必须安装,因此您需要该部分的管理权限。提供SQL Server Express的一组功能。它比SQL CE大得多,并且还需要安装(与CE不同,它只是二进制插入)。此DBMS的最短概述can be found here.