在数据访问层中,标准ORM的替代方案是什么?

在数据访问层中,标准ORM的替代方案是什么?,orm,data-access-layer,Orm,Data Access Layer,我们都熟悉关系数据库的基本ORM:一个对象对应于一行,该对象中的一个属性对应于一列,尽管许多ORM都添加了很多细节 我想知道还有什么其他选择(除了对数据的原始访问)。只使用关系数据库的替代方案是很好的,但是除了SQL(如平面文件、RSS、NoSQL等)之外,还可以以统一的方式使用多种类型的后端的替代方案会更好。我更感兴趣的是想法,而不是具体的植入以及它们使用的语言/平台,但请链接到您认为有趣的任何内容 您的基本选择是: 只需使用原始SQL 选择一个符合您需求的ORM。大多数平台有多种选择例如.

我们都熟悉关系数据库的基本ORM:一个对象对应于一行,该对象中的一个属性对应于一列,尽管许多ORM都添加了很多细节


我想知道还有什么其他选择(除了对数据的原始访问)。只使用关系数据库的替代方案是很好的,但是除了SQL(如平面文件、RSS、NoSQL等)之外,还可以以统一的方式使用多种类型的后端的替代方案会更好。我更感兴趣的是想法,而不是具体的植入以及它们使用的语言/平台,但请链接到您认为有趣的任何内容

您的基本选择是:

  • 只需使用原始SQL
  • 选择一个符合您需求的ORM。大多数平台有多种选择例如.NET平台支持LINQ、nHibernate、实体框架等
  • 编写自己的ORM和/或数据访问框架

我的工作或多或少与你说的一样。我认为与数据存储相关的工具随着时间的推移变得越来越复杂,而不是变得更简单、更有用

因此,为了增加复杂性,这类事情必须简单到:

  • 获取指向数据的内容
  • 使用它来处理数据(查询或修改)
  • 您用来与数据交互的东西应该对您正在使用和完成的数据存储进行某种(透明的)调整

    翻译可能听起来有点像ORM,但我说的是更一般的东西:

    • 某种内部实现,可以与正在使用的任何东西进行通信(类似于JDBC驱动程序,但不需要使用SQL)

    • 将数据转换为java对象的某种映射(或多或少类似于ORM)

    我开发的这些概念的实现是针对java的,您可以在


    现在,我只为SQL相关数据源开发了一个引擎,但它已经准备好独立于它。

    我不是故意无礼,但我在问题中特别提到了这一点。任何平台都是好的,我对这个概念比对实现更感兴趣。@Lukas Eder为什么要关闭这个“基于意见”的平台?作者似乎在寻找ORM的替代品——这可能会让你对ORM有一个看法,但这个问题仍然有效,而且还有替代品。在那个问题上,你从哪里推断出一个观点?@Swarmsjohn,好老问题。我一直在从事一个开源项目,该项目提供了一个很好的ORM替代方案,重点关注高延迟连接(云SQL/NoSQL)。我很想听听你的想法:@LukasEder这本书永远不应该以“基于意见”的方式关闭,里面没有任何东西需要发表意见。它简单地问“替代方案是什么…”而不是“哪些是好的/坏的/为什么?”最后一句“我更感兴趣的是想法,而不是具体的植入以及它们使用的语言/平台,但请链接到您认为有趣的任何内容。”应该删除/编辑,以保持问题的客观性并给出具体的答案。我想问的是,除了ORM之外,是否还有其他用于数据访问的抽象。除非每个人都在使用ORM作为“比原始SQL更高级的一切”的总括,否则人们在封装对数据库的访问方面肯定还有其他想法。也许,但如果你看看所有不同的ORM解决方案,你会发现其中有很多种。例如,比较LINQ、Ruby on Rails ActiveRecord和Sybase的DataWindow.NET——所有这些都可以被视为“ORM”,但它们都使用各自独特的方法。@请以非ORM数据访问库为例进行检查。