-3

让我们假设我正在编写一个程序,我的程序有自己的实体等。由于我使用的是 OOP .Net 语言(C#,但可能是 F# 或 Iron Python),我的对象具有奇怪的 OOP 特征,例如继承、对其他对象的引用和层次关系。

当然,我想将这些都保存到我该死的数据库中,显然我不能,因为它是关系型的,并且来自该死的数学家,他们花了太多时间学习集合论,该死的他们。

现在我可以使用 ORM 层,但这有点像噩梦,因为我必须编写各种 XML 等。

不,我想要的是一个具有面向对象功能的数据库!甚至可能是一个对象关系数据库

但!我还希望它在我的.Net世界中拥有自然的 API 和绑定。

我希望能够编写一个 Cat 类,并且能够告诉我数据库来保存我的 Cat,我会的。如果它有一个Linq提供程序,它也会非常有用。

有任何想法吗?

4

3 回答 3

3

好吧,有很多不同风格的对象数据库。有些易于使用,针对嵌入式用例进行了优化,例如db4operst.net等。或者更大的数据库,例如Versant Object DatabaseObjectiviy Database 等。谷歌搜索更多这样的数据库。

无论如何,这样的对象数据库让您存储对象并尝试保留语义。因此它们可以存储数组、引用、继承等。这允许一种非常原生的方式来处理数据。大多数还提供了 LINQ 提供程序。

我还建议查看文档数据库,例如RavenDBMongoDB。(也谷歌更多的选择)。它们还有一个非常自然的界面,您可以在其中存储非常复杂的对象图。然而,它们是面向“文档”的。这意味着存储和更新文档,这意味着实际上您将一堆对象存储和对象在一起并一起更新这些更新。

于 2010-08-16T13:17:05.993 回答
2

我认为Raven DB 就是您要找的。周围还有其他文档 nosql 数据库。CouchDB、MongoDB 也是,但这些不是本机 .NET 实现。

BTW ORM 层不再是一场噩梦。远非如此,您是否研究过 L2S、EF 和 Fluent NHibernate?这些都不需要 XML 配置。每个都有其优点和缺点,但都非常有用。

于 2010-08-16T13:01:52.117 回答
0

对于这种情况,您可以考虑使用 Raven 等文档数据库:http ://ravendb.net/

于 2010-08-16T13:04:58.300 回答