0

私は疑問に思っています:マッパーの抽象化はどれほど複雑になる可能性がありますか?

コントローラーのアクションがあるとしましょう

ActionResult Find(QueryInputModel query)

モデルは次のようになります

class QueryInputModel
{
    public string Text {get;set;}
    public IEnumerable<string> RegionCodes {get;set;}
}

とりわけ、入力モデルをビュー モデルに変換するのはアクションの役割です。

class QueryViewModel
{
    public string Text {get;set;}
    public IEnumerable<Region> Regions {get;set;}
}

class Region
{
    public string Name {get;set;}
    public string Code {get;set;}
}

ビュー モデルの領域名は、入力モデルのコードを使用して db から取得する必要があります。現在、QueryMapper.Map(src)このような方法で行われています

public QueryViewModel Map(QueryInputModel source)
{
    var regions = regionRepository.Get(source.RegionCodes);
    var result = new QueryViewModel {Text=source.Text, Regions=regions};
}

そのような抽象化をMapperと呼ぶのは正しいですか? 単純なマッピングと db クエリを 1 つのメソッドに混在させても問題ありませんか?

4

2 に答える 2

-1

ViewModel と DataModel の間のマッピングは手動マッピングです。Automapper や Valueinjecter などのサードパーティ製マッピングを使用してみてください。どちらも Nuget によってプロジェクト ファイルにインストールできます。コーディングと理解がより簡単なため、個人的には Valueinjecter を好みます。

于 2013-07-03T16:54:21.117 に答える