2011-06-03 8 views
2

AutoMapperの設定はどのレイヤに設定する必要がありますか?AutoMapper設定を含むレイヤーは?

AutoMapperは、ViewModelsを自分のドメインエンティティにマップします。

私のアプリにはドメイン、UI(MVC)、インフラストラクチャの3つのレイヤーがあります。

答えて

4

これは、/から変換される最上位レイヤに存在する必要があります。

ドメインとインフラの間にマッパーがある場合、それらはドメインに存在する必要があります(インフラを使用していると仮定します)。

UIとドメインの間にマッパーがある場合は、UIを使用する必要があります(ドメインを使用していると仮定します)。

これは、下位のレイヤーが上位レイヤーについて認識していないか、または知る必要がないことを意味します。

+0

私はUI(ViewModels)とドメインの間にマップを持っています。インフラストラクチャを導入すると、明日UIを変更すれば良いのでしょうか? –

+0

@Acaz - あなたが何を意味するのか分かりません。 – Oded

+0

インフラストラクチャにオートマトンの設定を入れておくと、ii層を変更すると地図が残るためです。 –

1

ドメインモデルにビューモデルをマップする場所は、通常、MVCアーキテクチャのコントローラです。今はあなたのアーキテクチャーについてあまり言及していないし、 "UI"と "インフラ"はあまり具体的ではありません。

ただし、AutoMapperの設定は、DomainModelとViewModelの両方がわかっている場所でのみ呼び出すことができます。インフラストラクチャはViewModelに依存してはならないので、ViewModels(ドメインモデルに依存する)またはUIレイヤ(MVCのコントローラ)にマッピングする必要があります。

+0

ここではMVCを想定していますが、ここでOPはそれについて言及していません。 – Oded

+0

これは現在です;)また、私の答えはMVCを単なる例としてとって、より一般的です。具体的には役立つと感じ、MVCは最もよく知られているパターンの1つです。 – mnemosyn

関連する問題