我有一个要使用嵌入式数据库存储的对象模型。到目前为止,我一直在看DB4O,NHIBERNATE到SQLCE(W/ LINQ)和Ravendb。这将在桌面C#应用程序中使用。

我想要杠杆的关键功能是:LINQ或查询(无SQL或HQL),嵌入式数据引擎,POCO,POCO FIRST型号,无安装(无注册表或类似)

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

谢谢

有帮助吗?

解决方案

好吧,三个建议的数据库的性质大不相同。 SQLCE用Hibernate作为RDBMS,带有ORM,DB4O作为对象数据库和RavendB作为文档数据库。他们每个人都有其优势。

SQL CE和NHIBERNATE-COMBO好:

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

坏:

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

拉文

好:

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

坏:

  • 如果您的域不适合以文档为导向的方法,那将是非常痛苦的
  • 它不支持.NET框架客户端配置文件(这特别重要,因为OP的问题是关于嵌入式数据库的)

DB4O

好:

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

坏:

  • 工具支持很弱。

AFAIK所有三个支持Linq和Poco-First方法。但是,由于Nhibernate&SQL CE仍然需要大量的映射,因此它并不像可能无摩擦。

我认为,如果您的重点是首先放在Poco,Linq-Support,Eddded用法和易于使用的情况下,我会尝试RADEDB或DB4O。如果您的重点是“安全”,社区知识,工具支持和报告,我将与Nhibernate和SQL CE一起使用。

其他提示

火鸟 是一个了不起的嵌入式数据库,长期以来一直支持企业数据库的所有现代功能:

  • ANSI SQL
  • 存储程序
  • 触发器

你可以得到 .NET提供商 (根据该网站的5月24日上次更新),并支持实体框架和LINQ。

这个问题. 。对于LINQ支持,请查看 dblinq, ,或者,由于您已经打算使用NHIBERNATE,因此可以使用NHIBERNATE自己的LINQ提供商。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top