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

Dav*_*d B 6 nhibernate db4o embedded-database ravendb

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

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

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

谢谢

Gam*_*lor 10

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

SQL CE和NHibernate-Combo 好:

  • 在工具,知识和大社区方面提供了极好的支持
  • 易于升级到MS SQL服务器
  • Extrem良好的报告支持
  • SQL的力量

坏事:

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

RavenDB

好处:

  • 不需要任何映射
  • 使用方便
  • 强大的索引
  • JSON和HTTP访问

坏事:

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

db4o的

好处:

  • 不需要任何映射
  • 使用方便
  • 存储模型靠近对象模型.这也适用于非常复杂的模型.
  • -

坏事:

  • 工具支持很弱.

Afaik三者都支持LINQ和POCO-first方法.然而,由于NHibernate和SQL CE仍然需要大量的映射,因此它不像它那样无摩擦.

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