我需要一个用于我们的.net应用程序的嵌入式数据库。
此数据库应支持sql(与Berkley不同)。
任何人都可以建议任何选择。
答案 0 :(得分:24)
我认为主要的选择是:
答案 1 :(得分:13)
我只想在这里提供有关VistaDB的更多信息。
我们的SQL语法与SQL Server语法非常接近,我们包括TSQL和CLR存储过程。
在您的应用程序中运行,您只需为32位和64位(100%托管代码)部署1个程序集。您无法使用SQL CE执行此操作,因为您必须部署不同的非托管程序集。
您可以将VistaDB与您的应用程序嵌入甚至ILMERGE,更改数据库名称等,以完全隐藏用户的引擎(有些人对此非常重要)。
是的,它也可以在Mono上运行,因为它是100%托管代码。还有一些问题(包括非英特尔单声道机器)。
完全披露 - 我是公司的所有者
答案 2 :(得分:5)
查看SQL Server Compact版本。它运行在进程中,它是一个单独的二进制文件,它将数据存储在一个文件中,它支持并发(与许多其他嵌入式数据库不同,包括SQLite)。另外,如果您使用的是Visual Studio,则可能已经拥有它。最后,它可以自由使用和重新分配。
答案 3 :(得分:5)
SQL Server Compact Edition是.NET紧凑框架的明智选择。我发现Arcane Code是学习SSCE非常有用的网站。他是SQL Server的MVP,专注于CE。
答案 4 :(得分:2)
我非常喜欢FirebirdSQL我自己(CMS也提到过)。它可以运行嵌入windows dll,iirc甚至还有一个内置核心驱动程序的混合二进制文件。它适用于ActiveRecord和NHibernate。大多数.Net类型都很容易映射。
优于其他选项的一个优点是,切换到RDBMS模式只需要更改查询字符串以使用服务器而不是嵌入式版本。你也可以在Linux中运行它(不幸的是不是在嵌入式模式下),如果你有将来希望定位Mono的话。