0

X、Y、Z という 3 つの子エンティティを持つエンティティ A があります。

私はまた、ウェブ上に浮かんでいるものの1つである汎用リポジトリを持っています...

私のサービスメソッド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.Add 操作を repoXXX に対してではなく、子コレクションに対して Add 操作を実行するだけでは十分ではないか、またはそれ以上に優れているのではないか、と自問しました。

repoA.Update(objectA);
repoY.Delete(objectA.Id);

foreach:
  objectA.CollectionX.Add(objectX);
  objectA.CollectionY.Add(objectY);
  objectA.CollectionZ.Add(objectZ);

  _unitOfWork.Commit();

補足:

objects_Y がコンテキストにロードされていないため、repoY の削除操作をメモリ内で実行できませんでした。

どう思いますか?

この質問にもドメイン駆動設計のタグを付けました。おそらく、このシナリオはそれと関係がありますか?

4

1 に答える 1