2009-03-04 9 views
1

私のリポジトリでは、私はLinqエンティティクエリから自分のドメインオブジェクトへの割り当てを行っています。私はその後、リポジトリから返されたこれらのオブジェクトに作用するサービス層を持っています。リポジトリ、エンティティオブジェクト、およびドメインオブジェクト

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

リポジトリ内のすべての割り当てを行うのは簡単ですが、今ではデータベースとドメインオブジェクトの区別がわかりません。ここで適切な練習は何ですか? tia

答えて

2

アプリケーションが比較的単純で、データアクセスをリッピングしてリポジトリ内のasignmentsを作成することができない場合は、IMOを使用します。しかし、将来的にアプリケーションが複雑になると思ったり、データアクセスを変更したい場合は、この機能をリポジトリから外してください。

私はリポジトリと他のサービス層の割り当てを使ってアプリケーションを行いましたが、別のものは別々の変換レイヤーを持っていました(1つのコンバージョンに1つではなく、オブジェクトは複雑でした)。

ベストプラクティスについて覚えておいていただきたいことが1つあります。役立つことがあれば、それはもっと使いにくくなります。

2

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

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

また、この関連する質問を確認してください:IRepository confusion on objects returned。私は同様のマッパーを使用しましたが、IQueryableレベルで動作させました。これにより、マッピング後にDomainオブジェクトを操作しながら面白いことをすることができました。

関連する問題