gpt4 book ai didi

c# - 工作单元类如何知道在提交时调用哪个存储库?

转载 作者:太空宇宙 更新时间:2023-11-03 22:08:31 25 4
gpt4 key购买 nike

* 前言:我对工作单元模式还很陌生 *

我的目标是实现一个工作单元类,它能够跟踪在整个给定事务中已更改的所有对象。我读到的关于工作单元模式的所有内容都与存储库模式并存。所以这就是我想使用的方法。

例如,我创建了一个新用户。在我的工作对象单元上,我有一个新创建对象的列表,所以我将我的新用户添加到这个列表中。我的用户存储库有一个名为 Create 的方法,它接受一个用户并调用一个存储过程来将数据添加到数据库中。当我对我的工作单元调用 commit 时,它如何根据新对象列表知道要调用哪个存储库和方法?假设它包含一个 User 对象和一个 Comment 对象。两者都是新创建的,需要在提交时添加。我不确定如何完成此操作。

有人可以更好地解释这一点吗?如果可能的话,甚至可以举一个小例子吗?

谢谢。

最佳答案

UnitOfWork是一个已经由 ORM 实现的基础架构模式,就像 Identity Map .您不必重新发明轮子。 Repository另一方面是 part你的领域模型。 Repository 和 UnitOfWork 在 different levels 运行. UnitOfWork 不需要调用 Repository,因为它不知道 Repository 是什么。它处理不同的抽象。它有一个内置的实体缓存,它知道这些实体处于什么状态。然而,UnitOfWork 可以注入(inject)到 Repository 中。

正确实现 UnitOfWork、IdentityMap、更改跟踪、延迟加载是乏味的。您真的应该使用现有的 ORM 作为基础设施层,帮助您专注于重要的事情 - 领域。

关于c# - 工作单元类如何知道在提交时调用哪个存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7547344/

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