gpt4 book ai didi

orm - ORM 和 DAL 有什么区别?

转载 作者:行者123 更新时间:2023-12-01 15:00:59 25 4
gpt4 key购买 nike

我已经阅读了两者,但它让我更加困惑。我试图找到差异(和相似之处),但无法说服自己。它们都是业务逻辑和数据库之间的中间层。有区别还是相同?

最佳答案

ORM(对象/关系映射器):

  • 它是一个库/工具,用于执行输入 SQL 查询(某些 ORM 也为您生成查询)并将输出 DataReader(或其他语言中的等效项)转换(映射)为您的强类型对象。这是任何 ORM 的基本特性。
  • 也就是说,它充当数据存储和应用程序之间的层。
  • ORM的核心作用是映射;它总是(主要是?)返回强类型对象。在极少数情况下,它可能会返回由 int 等语言提供的基本数据类型的值。 , string
  • 这是应用程序不可知的;除了您必须为每个应用程序/数据存储单独配置它。
  • 这仅涉及 RDBMS。
  • 一些高级 ORM(full-ORM)可以用作 DAL;这主要是一个设计决定。
  • 由于应用程序不可知,这无法实现您特定的持久性逻辑。

  • DAL(数据访问层):
  • 它是一个处理所有数据需求的层。但这与 ORM 不同。
  • 其实,这个可以使用 ORM 内部用于任何 RDBMS 通信。尽管 DAL 也可以在不使用任何 ORM 的情况下进行设计。
  • DAL 可能会返回强类型对象,但并非总是必要的。
  • DAL 可以与任何形式的数据存储进行通信,包括 Web API、XML、RDBMS。
  • 映射可能是也可能不是 DAL 的一部分,这取决于它的设计方式。
  • 这是特定于应用程序的。
  • 有不同的模式可用于将 DAL 实现为数据访问对象或存储库。
  • 专为特定应用程序设计,这可能包括您的特定持久性逻辑,如数据加密。
  • 关于orm - ORM 和 DAL 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49500230/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com