【发布时间】:2010-10-15 15:17:22
【问题描述】:
我需要一个用于我们的 .net 应用程序之一的嵌入式数据库。
这个数据库应该支持 sql(不像 Berkley)。
任何人都可以提出任何选择。
【问题讨论】:
标签: .net sql embedded-database
我需要一个用于我们的 .net 应用程序之一的嵌入式数据库。
这个数据库应该支持 sql(不像 Berkley)。
任何人都可以提出任何选择。
【问题讨论】:
标签: .net sql embedded-database
我能想到的主要选项是:
【讨论】:
我只是想晚点来这里介绍有关 VistaDB 的更多信息。
我们的 SQL 语法与 SQL Server 语法非常接近,我们包括 TSQL 和 CLR 存储过程。
在您的应用程序中运行,您只需为 32 位和 64 位(100% 托管代码)部署 1 个程序集。您无法使用 SQL CE 执行此操作,因为您需要部署不同的非托管程序集。
您可以将 VistaDB 嵌入到您的应用中,甚至可以对其进行 ILMERGE、更改数据库名称等,以对用户完全隐藏引擎(有些人对此非常重视)。
是的,它也可以在 Mono 上运行,因为它是 100% 托管代码。仍然存在一些问题(包括非 Intel Mono 机器)。
全面披露 - 我是公司的所有者
【讨论】:
看看 SQL Server Compact 版本。它在进程内运行,它是单个二进制文件,将其数据存储在单个文件中,并且支持并发(与许多其他嵌入式数据库不同,包括 SQLite)。另外,如果您使用的是 Visual Studio,您可能已经拥有它。最后,它可以免费使用和重新分发。
【讨论】:
SQL Server 精简版是 .NET 精简框架的明智选择。我发现Arcane Code 是一个对学习 SSCE 非常有帮助的网站。他是 SQL Server 的 MVP,专注于 CE。
【讨论】:
我本人非常喜欢FirebirdSQL(CMS 也提到过)。它可以嵌入windows dll运行,iirc甚至还有一个混合二进制文件,其中包含为此内置的核心驱动程序。它也适用于 ActiveRecord 和 NHibernate。大多数 .Net 类型都可以轻松映射。
与其他选项相比,一个优势是切换到 RDBMS 模式只需将查询字符串更改为使用服务器,而不是嵌入式版本。如果您希望将来以 Mono 为目标,您也可以在 Linux 中使用它(不幸的是不是在嵌入式模式下)。
【讨论】: