如果我实现一些简单的OR / M工具,我在哪里放置身份地图?显然,每个Repository应该可以访问自己的身份映射,因此它可以注册加载的对象(或者DataMapper可能是在IdentityMap中注册对象的那个?)。

当我提交工作单元时,我还需要访问身份映射以查看哪个实体是脏的哪个是干净的(或者我又错了,并且有一些外部对象调用我的UnitOfWork的RegisterClean / RegisterDirty方法class?那么这个对象是什么?)。

这是否意味着我应该将IdentityMap实现为一个完全独立的对象,其中包含每个实体类型的内部IdentityMaps?

对于IdentityMap,Repository和UnitOfWork如何协同工作非常困惑。

有帮助吗?

解决方案

通过我们的 .NET O / R Mapper,LightSpeed ,我们将身份地图放在工作单位内。这对我们来说非常有效,并且感觉非常自然,因为它在工作单元的生命周期中有效地充当了用于查询目的的1级缓存。

通常,注入或以某种方式为您的Repository类提供UoW,以便您有一个有效的范围和查询网关。

我希望有所帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top