寻找有关嵌入式.NET数据库的指南(例如DB4O,NHIBERNATE或RAVENDB)
-
01-10-2019 - |
题
我有一个要使用嵌入式数据库存储的对象模型。到目前为止,我一直在看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一起使用。
不隶属于 StackOverflow