gpt4 book ai didi

design-patterns - UnitOfWork 是否等于事务?或者它不止于此?

转载 作者:行者123 更新时间:2023-12-04 13:47:16 27 4
gpt4 key购买 nike

互联网上到处都是关于UnitOfWork的信息图案;甚至 SO 也不异常(exception)。

我还是不明白。据我了解 UnitOfWork = Transaction in DB .仅此而已;不多也不少。

这样对吗?

我的困惑是由于它是如何在不同的 ORM 中实现的s。 NHibernate用途 ISession不仅仅是一个 Transaction . Dapper把一切都留给你。

我这里的问题是关于设计模式,不考虑任何 ORM或技术。

如果不仅仅是Transaction ,请解释如何。

编辑 1

引用this @David Osborne 回答中建议的链接。

A Unit of Work keeps track of everything you do during a business transaction that can affect the database. When you're done, it figures out everything that needs to be done to alter the database as a result of your work.



所以这意味着 UnitOfWorkDBTransaction 更多 .

以下是它的额外职责:-
  • 维护您在此工作 session 中更改、插入、删除的状态。
  • 基于此状态,在工作完成后修改数据库。

  • 虽然在上面的引用中没有明确提到,但它也可以控制查询的批处理。

    我现在的理解正确吗?

    最佳答案

    originates ,AFAIK,从需要 ORM 工具来跟踪逻辑/业务事务期间对象的 [持久性] 状态。

    工作单元如何管理它,以及它与底层存储技术和存储的对象的关系,是一个实现细节。

    中间有许多 SQL 语句的数据库事务可以说也是一个工作单元。然而,我认为,关键的区别在于模式中定义的工作单元已将该细节级别抽象为对象级别。

    关于design-patterns - UnitOfWork 是否等于事务?或者它不止于此?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39909985/

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