使用存储库模式,最好是一起或单独保存父和子对象?

Laz*_*Laz 5 design-patterns repository-pattern

拥有父对象Employee,其中包含Address子对象列表:

class Employee
{
    List<Address> addresses;
}
Run Code Online (Sandbox Code Playgroud)

和存储库方法:

void Insert(Employee);
Run Code Online (Sandbox Code Playgroud)

此存储库中的代码是否应该尝试保存父Employee以及子Address对象,还是单独的存储库应该处理父对象和子对象?

如果单独的存储库,那么当在客户端代码中保存Employee对象及其子代时,这应该是在该级别的单独调用,在某种服务中组合还是有另一种选择?

Dyl*_*tie 5

存储库应该处理整个聚合对象(父对象和所有子对象),因为这就是使它成为存储库的原因.如果你单独保存root和child对象,那么你正在使用的模式实际上并不是一个存储库(虽然它可能仍然是一个非常好的解决方案)

"库"是只为加载和一气呵成节省整个聚集的特定数据访问提供了一种便利的名字 - 所以,当你到你正在使用的存储库模式另一家开发商说,他们知道这是怎么回事.