.NET中的快速嵌入式数据库有哪些选择?

时间:2009-10-16 13:34:35

标签: .net embedded-database

我正在制作这个小型实用程序(Windows Forms),它需要将一些数据保存到磁盘上。在DB术语中,它将是一个表,不超过大约几千行,每行大小不超过1KB。

你会用什么?

添加:忘了说 - 如果整个程序只是一个.EXE文件(当然还有数据文件),它会非常整洁。因此,我更喜欢用.NET构建的东西。

14 个答案:

答案 0 :(得分:23)

SQLite。它很小,对于.Net有great wrapper

答案 1 :(得分:11)

或者theres Esent,内置数据库,存在于每个Windows副本中。在此处阅读:http://ayende.com/Blog/archive/2008/12/23/hidden-windows-gems-extensible-storage-engine.aspx

如果你感到勇敢,我会整理一个简单的文档db PieDb(就像'easy as'一样)。

答案 2 :(得分:8)

您可以使用SQL Server Compact Edition(随Visual Studio提供)或SQLite

还有很多其他的,但这些是最常见的。

我是SQLite的忠实粉丝,因为它很小,简单,快速。它有一个很棒的ADO.NET provider,它支持实体框架。

答案 3 :(得分:4)

如果你正在谈论一个表,我不明白为什么你觉得你必须使用关系数据库来实现你的目标。单个文件怎么样?

当然,根据您需要存储信息的原因以及数据的相关方式,您可能有理由需要数据库。但是你应该考虑在这种情况下数据库是否真的是你需要的。

关系数据库不应该是存储数据的事实标准。在选择RDBMS之前,您应该考虑许多替代方案。

例如,请参阅mcintyre321的帖子。

答案 4 :(得分:3)

如果您已经开始使用嵌入式数据库,那么SQL Server Compact Edition可能是您最好的选择,紧随其后的是SQLite。

如果您正在谈论一张桌子,那么听起来像嵌入式数据库可能有点过分,您可以通过简单的文本文件获得更好的服务。

答案 5 :(得分:3)

您可以创建类的数组,将其标记为[Serializable],并使用内置的serialize / deserialize方法进行持久化。

答案 6 :(得分:2)

我对SQLite投了第二票。除非您需要与中央数据库轻松同步,否则SQL Server CE对于任何嵌入式目的来说都太沉重了 - 那就太棒了。

答案 7 :(得分:1)

SQLite的.NET端口位于http://code.google.com/p/csharp-sqlite/。它是纯.NET,因此您可以将ILMerge转换为单个.exe

答案 8 :(得分:1)

对于小而简单的东西,我可能会使用XML而不使用数据库。如果您抽象CRUD代码,您可以稍后修改代码的数据层部分,以便在数据大小和复杂性增加时使用数据库。

答案 9 :(得分:1)

一旦我调查了同样的问题。从所有可能的候选人两个看起来很好这些是SQLite和Firebird(firebirdsql.org)。但是火鸟比SQLite有更多的功能。

UPD:这里有关于firebird + dotnet的有趣信息http://www.firebirdsql.org/dotnetfirebird/embedded/index.html

答案 10 :(得分:1)

Berkeley DB也是嵌入式数据库的不错选择。还有一个library为它提供了一个.NET 2.0接口。

答案 11 :(得分:0)

如果它不一定是SQL兼容的数据库,那么我也会看看Db4o。 Db4o是Java和.NET的对象数据库。 .NET版本完全用C#编写。

答案 12 :(得分:0)

我是第二个SQL Lite或带有deflate writer的简单XML文件,以最小化大小。快,没那么脏。

答案 13 :(得分:0)

试试这个:https://github.com/mdsoftware/mData。没有第三方,所有来源包括,一些很好的东西,如类似Lisp的数据处理和表达式编译器也包括在内。我试图制作一些非常简单但功能齐全的东西。

相关问题