【问题标题】:.NET project: unified wrapper for object databases.NET 项目:对象数据库的统一包装器
【发布时间】:2023-03-21 17:03:01
【问题描述】:

我正在考虑做一个项目,该项目将为 .NET 的对象数据库(例如 Caché、Objectivity)提供统一的 API 和工具(导入/导出等)。

它将提供:

  • 从 CLR 类生成模式,
  • 从给定的 OODBM 架构生成 C# 类,
  • 用于删除、创建和更新对象的 API,
  • Linq 提供程序,
  • 使用 .NET 对象 (*) 从 .NET 调用数据库对象方法的 API,
  • 一些 OODBM 提供某种 SQL 支持,因此 API 用于此,
  • 第一阶段的缓存和客观性提供商。

是否存在实施上述任何一项的项目?这可以通过 NHibernate 方言实现吗?还是 OODBM 与 RDBM 如此不同以至于值得为它们做单独的框架?

编辑: (*) 我的意思是从应用程序调用 DB 方法(RDBM 世界中的存储过程)。在 OODBM 世界中,至少据我了解,对象可能具有方法,例如 C# 对象。我的想法是,您可以使用属性 [DbCall] 左右标记一个方法,并将 body 留空,当您从 .NET 调用它时,框架实际上会调用给定对象上的数据库方法。

NHibernate 是为 RDBM 设计的,所以我想知道在使用 NHibernate 时可能不会利用 OODBM 的任何差异(功能)。

【问题讨论】:

    标签: .net nhibernate projects object-oriented-database


    【解决方案1】:

    NHibernate 做了所有这些,除了:

    在数据库服务器上调用对象方法的API

    我不太明白。如果您的意思是数据库能够从存储过程中调用应用程序功能,那么这是数据库级别的事情,而不是真正的 DAL/ORM 事情。

    【讨论】:

      【解决方案2】:

      请原谅我最初的误解! 数据管理的世界正在发生变化。与服务平台的链接、可扩展(云)平台内的操作、对象数据库、对象关系绑定、NoSQL 数据库和并发控制的新方法都成为学术界和工业界的热门话题。因此创建通用 API 层将非常有用,但绝对不容易创建可以与具有不同功能的 OODBMS(STSdb, [DB4O], [Perst] ...) 一起使用的 API(复合) ...

      【讨论】:

      • 所有 OODBMS 都自带 API。我认为问题是关于不同 OODBMS 的通用 API 层。就像 EF 是适用于各种 RDMBS 的 API。
      猜你喜欢
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      • 2010-12-15
      • 1970-01-01
      相关资源
      最近更新 更多