Windows 是否有一些内置的数据库引擎?

use*_*338 0 c# windows

到目前为止,在我的应用程序中,我通过序列化存储了我的所有数据,所以我真的不需要任何其他东西。但现在我正在处理更复杂的数据,我需要的不仅仅是一个简单的文件来存储它们。我可以使用 Windows 中的一些内置存储引擎,它允许我使用 SQL 查询提取和编辑数据吗?(因为我怀疑用户是否愿意仅为我的应用程序安装和配置独立的 MySQL 服务器,而且我真的不想使用 3rd 方解决方案)如果有,我该如何访问这样的数据库引擎?

Mik*_*ray 6

是的,Windows 确实有一个嵌入式数据库引擎,自 Windows 2000 以来一直存在。它被称为Esent

有一个名为Managed Esent的项目,用于将Esent的功能暴露给托管代码。有一个NuGet 包

我不知道它是否符合您通过 SQL 查询进行更新的确切需求,但它确实拥有许多功能:

  • 带有保存点、延迟提交和健壮的崩溃恢复的 ACID 事务。
  • 快照隔离。
  • 高并发数据库访问。
  • 灵活的元数据(数以万计的列、表和索引是可能的)。
  • 对整数、浮点、ASCII、Unicode 和二进制列的索引支持。

更新 从那以后,我通过 nuget 包在 C# 中获得了一些使用 Esent 的经验。它没有 SQL 查询功能。有对索引和基本游标的支持,但没有像 SQL 那样强大。如果您需要轻量级 SQL,我的建议绝对是 SQLite。