.NET / Mono数据库引擎

13

是否有任何完全采用.NET和Mono兼容的数据库引擎?我希望拥有一个能够通过Mono在所有平台上运行的数据库解决方案,这样我就不必担心为每个平台单独构建本地二进制文件。

10个回答

7

VistaDB 是完全基于 .NET 的,并且支持在 Mono 上运行。您可以将 DB 服务器嵌入到应用程序中,因此不需要额外的设置,唯一的问题是这不是一个免费产品。

Firebird 有一个 .NET 版本,是开源的,也可以在 Mono 上运行。如果您想要使用 Lucene 进行搜索,还有一个适配器可用。

您还可以查看此页面,其中列出了在 Mono 下支持的数据提供程序等。

http://www.mono-project.com/Database_Access


2
还有一件事我忘了提到,你可以使用抽象的数据访问层来设计应用程序,这样你就不需要直接调用数据库,而是调用像CommonDataProvider.GetInstance()这样的东西,它会为你获取在配置文件中设置的提供程序的引用。然后你可以针对MSSQL、MySQL、Oracle等进行优化代码,这就是像社区服务器、涂鸦和dotnet nuke这样的应用程序的工作方式。 - Brian Surowiec

6

db4o 是一种对象数据库引擎(使用 Java 和 C# 编写),在 Mono 下可以平稳地编译和运行。


6

太好了!看起来非常棒。 - Camilo Martin
2
尽管当前版本的csharp-sqlite(3.7.7)与Mono兼容,但在没有对源代码进行多次更改的情况下,它既不适用于Linux也不适用于Mac OS X。希望下一个版本将完全支持Mac OS X / Linux。 - Stewart

2

SQLite并非使用.NET编写,但有一个.NET适配器(支持linq to entities),并且可在您可能考虑的所有平台上使用(例如,在firefox、safari、adobe lightroom、apple's aperture和skype中使用)。如果您正在寻找经过验证、广泛采用、开放许可的数据库,SQLite是一个很好的选择。

然而,db4o肯定是一个好的替代方案,特别是因为它可以轻松地集成到OO环境中(而基于SQL的数据库则往往不能)。


时间点非常有趣;-)。然而,我仍然会最初使用本机绑定,直到端口成熟为止。 - Eamon Nerbonne

1

iBoxDB.NET 可以在大多数基于 .NET 和 Mono 的平台上运行,包括 .NET、Mono、Unity3D、Xamarin。


1

1

如果我是你,我也会选择MongoDB以及Norm C#驱动程序。


0

其他答案中建议使用完全托管的C# SQLite3端口,但迄今为止尽管可以使用Mono C#编译器进行编译,但没有支持Linux或Mac OS X的版本。

未来的版本将在这些非Windows平台上正确运行,并配合Mono运行时使用。有一些注意事项,源代码存储库包含可立即使用的工作代码。


0

我正在https://github.com/mcintyre321/PieDb上进行一个项目 - 它非常实用

可以通过XCOPY部署 透明 - 您不需要在对象上拥有Id属性*。 它是MIT许可证 它具有非常小的代码库。 它使用JSON事务日志记录更改(因此您的对象需要是Json可序列化的)。可以写入磁盘,也可以在内存中进行测试 事务会话(又称工作单元),具有乐观并发性


0

我最近读到有一个 .NET 版本的 HSQLDB(一个 100% 的 Java 数据库,我认为 .NET 版本是 100% 的 .NET 代码)。网站 现在似乎无法访问,但你应该去看看。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接