【问题标题】:Repository Pattern - aggregate root存储库模式 - 聚合根
【发布时间】:2011-06-30 17:16:51
【问题描述】:

我试图弄清楚聚合根在我的实体框架数据模型中的位置,因此我知道我需要创建哪些存储库。

如果我用关系数据库术语谈一谈,我有一个 ExceptionGroup 对象和一个 Exception 对象(不是 system.exception!)。 Exception 属于 ExceptionGroup,没有 ExceptionGroup 就不能存在。

我应该为每个对象创建一个存储库,还是应该为这两个对象创建一个包含方法的存储库?如果我有一个单一的存储库,方法如下......

FindAllExceptionsByExceptionGroup(int GroupID)
AddExceptionGroup(ExceptionGroup ExceptionGroup) - because an exception cannot exist without a group.
AddException(DataAccess.Exception Exception)
DeleteExceptionGroupByID(int GroupID)
DeleteExceptionByID(int ExceptionID)
DeleteExceptionByGroup(int GroupID)

【问题讨论】:

    标签: .net entity-framework orm repository-pattern aggregateroot


    【解决方案1】:

    如果我正确理解您的模型,听起来您将拥有 ExceptionGroup 的存储库,并且 ExceptionGroup 对象将封装对 Exception 实例的访问和操作(例如,通过公开它们的集合) .这样一来,两个类之间的强制关系就变得非常明显了。

    Jeff Sternal 在这里对类似问题有一个很好的回答:What's an Aggregate Root? 他的 Order / LineItem 示例似乎类似。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 2014-06-27
      • 2012-07-11
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      相关资源
      最近更新 更多