ドメイン層で抽象化された MVC パターンを使用しています。ドメイン オブジェクトを同等の DTO に変換し、最上位層 (つまり、コントローラーと最終的にはビュー) に送信することができます。では、逆をどうするか。実際の DTO オブジェクトを作成してコントローラーに渡す方法と場所は?
1147 次
1 に答える
0
これを行う最善の方法は、DTO サービス レイヤーを使用することです。これは、コントローラー (またはその他のもの) が呼び出して DTO を取得および変換できる関数のコレクションになります。
また、このレイヤーでもドメイン オブジェクトから DTO へのマッピング (およびその逆) を行うことをお勧めします。これにより、すべての DTO 関連ロジックが 1 つのレイヤーに保持されます。
以下は、DTO サービス層関数の例です。
public CustomerDto GetCustomer(Guid customerId) {
var roService = new RoService<Customer>(new Repository<Customer>(_dbContextFactory));
return _mapper.ToCustomerDto(roService.Get(customerId));
}
これにより、ID によって Customer エンティティが取得されます。エンティティはマッパー オブジェクトに渡され、それが返されるために CustomerDto に変換されます。
注意: AutoMapper を使用して、ドメイン オブジェクトを DTO に変換しました。
于 2013-09-27T10:01:49.297 に答える