代码之家  ›  专栏  ›  技术社区  ›  JustAMartin

IdentityMap所属的位置:UnitOfWork还是Repository?

  •  3
  • JustAMartin  · 技术社区  · 15 年前

    如果我实现了一些简单的或/m工具,我应该把身份图放在哪里?显然,每个存储库都应该有权访问自己的标识映射,这样它就可以注册加载的对象(或者DataMapper是在IdentityMap中注册对象的人?).

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

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

    对IdentityMap、知识库和UnitOfWork如何一起工作感到非常困惑。

    1 回复  |  直到 15 年前
        1
  •  4
  •   traskjd    15 年前

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

    通常,注入或以某种方式为存储库类提供一个UOW,这样您就有了一个有效的查询范围和网关。

    希望有帮助。