18

我需要一个用于我们的 .net 应用程序之一的嵌入式数据库。

该数据库应该支持 sql(与 Berkley 不同)。

任何人都可以提出任何选择。

4

5 回答 5

25

我能想到的主要选择是:

于 2009-03-26T05:16:07.267 回答
13

我只是想在这里晚些时候加入有关 VistaDB 的更多信息。

我们的 SQL 语法与 SQL Server 语法非常接近,我们包括 TSQL 和 CLR 存储过程。

与您的应用程序一起运行,您只需为 32 位和 64 位(100% 托管代码)部署 1 个程序集。您不能使用 SQL CE 执行此操作,因为您必须部署不同的非托管程序集。

您可以将 VistaDB 嵌入您的应用程序甚至 ILMERGE 中,更改数据库名称等以对用户完全隐藏引擎(有些人对此非常重视)。

是的,它也可以在 Mono 上运行,因为它是 100% 托管代码。仍然存在一些问题(包括非英特尔 Mono 机器)。

全面披露——我是公司的所有者

于 2009-05-07T03:34:05.837 回答
6

查看 SQL Server Compact 版本。它在进程内运行,它是单个二进制文件,将其数据存储在单个文件中,并且支持并发(与许多其他嵌入式 DB 不同,包括 SQLite)。另外,如果您使用的是 Visual Studio,您可能已经拥有它。最后,它可以免费使用和重新分发。

于 2009-03-26T05:30:23.987 回答
5

SQL Server Compact Edition 是 .NET 紧凑框架的明智选择。我发现Arcane Code是学习 SSCE 的一个非常有用的网站。他是 SQL Server 的 MVP,专注于 CE。

于 2009-03-26T05:31:34.997 回答
2

我自己真的很喜欢FirebirdSQL(CMS 也提到过)。它可以嵌入windows dll运行,iirc甚至还有一个混合二进制文件,其中包含为此内置的核心驱动程序。它也适用于 ActiveRecord 和 NHibernate。大多数 .Net 类型很容易映射。

与其他选项相比,一个优势是切换到 RDBMS 模式只需将查询字符串更改为使用服务器,而不是嵌入式版本。如果您希望将来以 Mono 为目标,您也可以在 Linux 中使用它(不幸的是不是在嵌入式模式下)。

于 2009-03-26T05:37:45.437 回答