我需要一个用于桌面应用程序的轻量级数据库引擎。该应用程序不是以数据为中心的,尽管它需要一些持久性数据。你会使用哪一个MS SQL Server express版或SQLite?
修改
SQL Server Compact版是免费的吗?如果是这样的话,那么SQLite vs SQL Server Compact版开发这种应用程序呢?
答案 0 :(得分:10)
绝对不是Sql Server Express。这是一个服务器类引擎。你想要一个进程内引擎。在这方面,SQLite很好。 Sql Server Compact 版也是如此。两者都是免费的,或者应该足以满足您的需求。
答案 1 :(得分:10)
如果您正在使用C#和Visual Studio,只需右键单击您的项目并选择“添加项目...”,然后在对话框中选择“本地数据库”,这将创建一个SQL CE(精简版)数据库。它具有SQL Express / Server的大部分功能,就表,数据类型,视图而言,但不允许存储过程。它也适用于Linq-to-SQL,因此可以轻松集成。
答案 2 :(得分:4)
使用SQL Server Compact - 您可以使用LINQ,这本身就值得付出努力。
虽然SQLite是一个选项,但您需要获得一个ORM层,与SQL Server相比,性能提升最小/不存在。
答案 3 :(得分:4)
Firebird是一个众所周知的数据库,支持latest Microsoft framework
答案 4 :(得分:2)
SQLite,特别是如果它是单用户的话。一个数据文件和一个DLL。
答案 5 :(得分:2)
如果它是单个用户系统,你想要查看MS SQL Server精简版而不是Express(参见这里:http://www.microsoft.com/sqlserver/2008/en/us/compact.aspx)
Compact Edition是一个类似于SQLite的可嵌入数据库。
不幸的是我不能以任何方式提出建议。
答案 6 :(得分:2)
答案 7 :(得分:2)
有些人喜欢.NET嵌入式数据库世界中的其中一个人 - VistaDb。该许可证比Sql Server Compact(仅限单个开发人员)更具限制性,但它是一个100%托管的数据库,具有xcopy部署并具有VS工具集成。
答案 8 :(得分:2)
请注意,如果将SQL CE与EF一起使用,则必须生成自己的id密钥,因为SQL CE不支持多个查询。
即: 插入 - >选择实体的密钥 - >不好
生成和ID键(GUID或其他)将其添加到您的实体,然后插入 - >好
答案 9 :(得分:1)
Defo SQL lite,虽然它有一些您应该注意的限制/功能
答案 10 :(得分:0)
如果您的需求是以数据为中心的,那么您真正需要的是一个文件,如果您需要事务(ACID),那么您需要的是(rdbms)数据库。
否则在向上扩展时会出现问题。
答案 11 :(得分:0)
如果它不是很多数据,并且您不需要运行复杂的查询(虽然LINQ可以),为什么不使用XML数据集呢?这样它就可以独立于平台(可以在带有Mono的Linux上运行),并且不需要用户安装额外的资源占用软件。
我广泛使用XML数据集用于需要持久数据存储少量信息的应用程序。如果它只是几个变量,您也可以使用设置文件,它将根据您的选择存储在每个应用程序或每个用户。
答案 12 :(得分:0)
考虑最终用户的开销...... SQL Server Express仍占用资源,需要时间才能重新启动,等等。对于少量的单用户持久性数据,我会选择SQLite。除非您正在进行严格的约束等,否则您和它之间不需要ORM。