私の mvc3 プロジェクトには次のレイヤーがあります。
コントローラ -> サービス -> リポジトリ。
ViewModel を Entity にマップする必要がありますが、どのレイヤーにコードを配置するのが適切かわかりません。
コントローラーまたはサービスのいずれかを知っています。どちらを使用する必要があるか、およびその理由を教えてください。
ありがとうございました。
私の mvc3 プロジェクトには次のレイヤーがあります。
コントローラ -> サービス -> リポジトリ。
ViewModel を Entity にマップする必要がありますが、どのレイヤーにコードを配置するのが適切かわかりません。
コントローラーまたはサービスのいずれかを知っています。どちらを使用する必要があるか、およびその理由を教えてください。
ありがとうございました。
ViewModel を Entity にマップする必要がありますが、どのレイヤーにコードを配置するのが適切かわかりません。
もちろんコントローラー。サービス レイヤーとリポジトリ レイヤーは、ビュー モデルの意味を認識していません。ドメイン モデルのみを操作します。
そのため、コントローラー内で.Map<TSource, TDest>呼び出しを使用して、ドメイン モデルとビュー モデルの間でマッピングを行ったり来たりします。ただし、マッピング定義自体 (.CreateMap<TSource, TDest>呼び出し) は、AppDomain の有効期間ごとに 1 回、理想的にはProfile.
それでは、RESTful な用語でコントローラー アクション内の典型的なワークフローをいくつか考えてみましょう。
GET(RDBMS用語でSELECT):
PUT(RDBMS用語で挿入):
DELETE(RDBMS用語でDELETE)
POST(RDBMS用語で更新):
.Map<TSource, TDest>メソッドの次の void オーバーロードに変換されます。Mapper.Map<ADomain, ViewModel>(domainInstanceControllerRetrievedUsingTheId, viewModelInstancePassedAsArgument);これら 4 つのワークフローがあれば、CRUD の世界に進む準備が整います。
PS REST リマインダー:
Create = PUT
Retrieve = GET
Update = POST
Delete = DELETE