gpt4 book ai didi

c# - 我应该如何在 C# 中实现我的存储库 (DDD) 以处理对同一聚合根的多个调用

转载 作者:太空狗 更新时间:2023-10-29 21:47:13 26 4
gpt4 key购买 nike

我项目中的哪个类应负责跟踪已创建的聚合根,以免为同一实体创建两个实例。我的存储库应该保留它创建的所有聚合的列表吗?如果是,我该怎么做?我是否使用单例存储库(对我来说听起来不对)?另一种选择是将这个“缓存”封装在其他地方是其他一些类吗?这个类会是什么样子,它适合什么模式?

我没有使用 O/R 映射器,所以如果有一种技术可以处理它,我需要知道它是如何做到的(比如它使用什么模式)才能使用它

谢谢!

最佳答案

我相信您正在考虑身份映射模式,as described by Martin Fowler .

在他对该模式的完整描述(在他的书中)中,Fowler 讨论了读/写实体(参与事务的实体)和只读(引用数据,理想情况下应该只读一次并随后缓存)的实现问题在内存中)。

我建议获取他的优秀书籍,但描述此模式的摘录可在 Google 图书上阅读(查找“fowler identity map”)。

基本上,身份映射是一个对象,例如在哈希表中存储从数据库加载的实体对象。映射本身存储在当前 session (请求)的上下文中,最好存储在工作单元中(对于读/写实体)。对于只读实体,映射不需要绑定(bind)到 session ,可以存储在进程的上下文中(全局状态)。

关于c# - 我应该如何在 C# 中实现我的存储库 (DDD) 以处理对同一聚合根的多个调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4938366/

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