1

私のリポジトリでは、Linq Entity クエリからドメイン オブジェクトへの割り当てを行っています。次に、リポジトリから返されたこれらのオブジェクトに作用するサービス レイヤーを用意します。

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

リポジトリですべての割り当てを行う方が簡単に思えますが、データベース オブジェクトとドメイン オブジェクトの違いがわかりません。ここでの適切な練習とは何ですか? ティア

4

2 に答える 2

2

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

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

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

于 2009-03-04T23:05:26.490 に答える
2

アプリが比較的単純であり、データアクセスを取り去ることを想像できない場合、IMO は先に進み、リポジトリで割り当てを行います。ただし、アプリが将来さらに複雑になると思われる場合や、データ アクセスを変更する必要がある場合は、この機能をリポジトリから除外してください。

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

ベスト プラクティスについて覚えておくべきことの 1 つは、それが問題をさらに難しくする場合は、それを使用しないことです。

于 2009-03-04T22:27:56.067 に答える