【发布时间】:2013-03-26 17:25:11
【问题描述】:
我有一个实体 A,它有三个子实体 X、Y 和 Z。
我还有一个通用存储库,其中一个漂浮在网络上...
在我的服务方法 AXYZ()
我做了多个存储库调用:(伪代码)
repoA.Update(objectA);
repoY.Delete(objectA.PK_Id);
foreach:
objectX.FK_ID = objectA.PK_ID;
repoX.Add(objectX);
foreach:
objectY.FK_ID = objectA.PK_ID;
repoY.Add(objectY);
foreach:
objectZ.FK_ID = objectA.PK_ID;
repoZ.Add(objectZ);
_unitOfWork.Commit();
现在我问自己,做所有的 foreach 是否不够或更好?而不是在 repoXXX 上添加操作 对子集合执行添加操作?:
repoA.Update(objectA);
repoY.Delete(objectA.Id);
foreach:
objectA.CollectionX.Add(objectX);
objectA.CollectionY.Add(objectY);
objectA.CollectionZ.Add(objectZ);
_unitOfWork.Commit();
附注:
无法在内存中对 repoY 执行删除操作,因为 objects_Y 未加载到上下文中。
你怎么看?
我也用域驱动设计标记了这个问题,也许这个场景与它有关?
【问题讨论】:
标签: c# domain-driven-design entity-framework-5 repository-pattern aggregateroot