質問

リポジトリでは、Linq Entityクエリからドメインオブジェクトに割り当てを行っています。その後、リポジトリから返されたこれらのオブジェクトを処理するサービスレイヤーがあります。

私のドメインオブジェクトはこのようにリポジトリにあるべきですか?または、リポジトリをエンティティとデータアクセスに制限し、代わりにサービスレイヤーにドメインオブジェクトへの割り当てを行わせる必要がありますか?

リポジトリですべての割り当てを行うのは簡単に思えますが、データベースとドメインオブジェクトの区別は明確ではありません。ここで適切な実践とは何ですか?ティア

役に立ちましたか?

解決

アプリが比較的単純で、データアクセスをリッピングしてリポジトリに署名を作成することを想像できない場合は、IMO。ただし、アプリが将来さらに複雑になる場合や、データアクセスを変更したい場合は、この機能をリポジトリに入れないでください。

リポジトリと他のサービスレイヤーで割り当てを行ったアプリを実行しましたが、別のアプリでは別の変換レイヤーを使用しました(1回の変換ではなく、オブジェクトが複雑でした)。

ベストプラクティスについて覚えておくべきことが1つあります。そこに役立つことがあります。

他のヒント

以前は気に入らなかった。しかし、今では通常、決して振り返ることはありません。基本的には、異なる構造の外部データソースに変更する必要がある場合は、リポジトリコードの実装とともに新しいマッピングを設定し、それを行うことができます。

データマッピングについてです。次のリンクを確認してください: http://www.martinfowler.com/eaaCatalog/repository.html

この関連する質問も確認してください:返されたオブジェクトに関するIRepositoryの混乱。同様のマッパーを使用しましたが、IQueryableレベルで動作するようにしました。これにより、マッピング後にドメインオブジェクトを操作しながら、非常に興味深いことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top