寻找有关嵌入式.NET数据库的指南(例如db4o,NHibernate或RavenDB)

时间:2010-08-27 00:19:47

标签: nhibernate db4o embedded-database ravendb

我有一个我想使用嵌入式数据库存储的对象模型。到目前为止,我一直在查看db4o,NHibernate到SQLCE(w / linq)和RavenDB。这将用于桌面C#应用程序。

我希望利用的主要功能是:Linq或类似的查询(无SQL或HQL),嵌入式数据引擎,pocos,poco第一模型,无安装(无注册表或类似)

任何人都可以建议吗?这三个我正在寻找最好的选择吗?还有其他选择吗?在这三个中,任何人都可以推荐一个吗?

由于

3 个答案:

答案 0 :(得分:10)

这三个建议的数据库的性质非常不同。 SQLCE使用Hibernate作为RDBMS,使用ORM,db4o作为对象数据库,RavenDB作为文档数据库。他们每个人都有自己的优势。

SQL CE& NHibernate的-COMBO 好处:

  • 非常好的工具支持,知识和大社区就在那里
  • 易于升级到MS SQL服务器
  • Extrem良好的报告支持
  • SQL的力量

坏事:

  • 需要映射
  • OO和关系世界之间的映射并不容易,并且可能导致复杂模型的问题。

<强> RavenDB

好处:

  • 不需要任何映射
  • 易于使用
  • 强大的索引
  • JSON&amp; HTTP访问

坏事:

  • 如果您的域名不适合面向文档的方法,那将非常痛苦
  • 它不支持.NET Framework Client Profile(由于OP的问题与嵌入式数据库有关,因此特别重要)

<强> db4o的

好处:

  • 不需要任何映射
  • 易于使用
  • 存储模型关闭对象模型。这也适用于非常复杂的模型。
  •   -

坏事:

  • 工具支持薄弱。

Afaik全部支持LINQ和POCO优先三种方法。然而,自从NHibernate&amp; SQL CE仍然需要大量的映射,而不是尽可能无摩擦。

我认为如果你首先关注POCO,LINQ支持,ebedded用法和易用,我会尝试RaveDB或db4o。 如果您关注“安全”,社区知识,工具支持和报告,我会选择NHibernate和SQL CE。

答案 1 :(得分:3)

Firebird是一个非常棒的嵌入式数据库,它长期以来一直支持企业数据库的所有现代功能:

  • ANSI SQL
  • ACID
  • 存储过程
  • 触发器

您可以获得.NET provider(根据网站最后更新于5月24日),它支持实体框架和Linq。

答案 2 :(得分:0)

this question。对于LINQ支持,请查看DbLinq,或者因为您已经打算使用NHibernate,所以您可以使用NHibernate自己的LINQ提供程序。