2

ビジネス層にいくつかの機能を実行するよう要求するサービス層があります。ビジネス層は、Entity Framework を使用するリポジトリにアクセスします。サービス層には、EF の ObjectContexts への参照を保持する Unit Of Work オブジェクトがあります。ビジネス レイヤーが呼び出されると、サービス レイヤーは Unit of Work に、トランザクション内で行った変更を保存するように指示します。

これはすべて正常に機能しています。複数のリポジトリが複数の edmx ファイルとすべてトランザクションで通信することができます。

システムのルールの 1 つは、EF のものは (UoW のコンテキストとは別に) リポジトリ レイヤーにとどまらなければならないということです。

しかし、私の設計には重大な欠陥があります。

ビジネス層の関数で、リポジトリ関数を呼び出してデータベースに新しいレコードを作成したいと考えています。次に、ビジネス層の同じ関数で、別のレコードを新しいレコードに向けたいと思います。EF エンティティはビジネス レイヤーで使用できません。また、サービス レイヤーに戻っていないため、新しいレコードの ID をまだ持っていないため、他のレコードを更新できます。

これをサポートするためにデザインを変更する方法について何か提案はありますか?

4

0 に答える 0