9

私は、以前の質問hereのいずれかに応答したため、AutoMapperを読んできました。

AutoMapperは複雑なドメインモデルを平坦化すると言われていますが、私はそれとは逆のことが必要です。ビューモデルをドメインモデルに素早く変換できるように、ビューモデル(フラットドメインモデル)を複雑なドメインモデルに配線する必要があります。

AutoMapperに似ていて、ビューモデルを取得して複雑なドメインモデルにするものはありますか?AutoMapperはドメインモデルを平坦化しますが、それは逆ですか?そうでない場合、何がありますか?

+0

あなたはValueInjecter http://valueinjecter.codeplex.com/ – Omu

答えて

1

これは実際には非常に慣習的でなければならないためです。フラット化するときにパターンを識別するのは簡単ですが、もう一方の方法では...カスタムロジックがあまりにも多くなります。

+2

ValueInjecterでそれを行うことができませんhttp://valueinjecter.codeplex.com/ – Omu

+0

それだけではありませんが、双方向マッピングが疑わしい習慣であるようです:http://lostechies.com/jimmybogard/2009/09/18/the-case-for -two-way-mapping-in-automapper /にあります。自分自身をコードするアプリケーション – gabe

4

してください。右手/左手のコーディングを行い、2つを一緒に同期させるMapToModelメソッドを作成します。

public MyModel MapToModel(MyViewModelForm vmf) 
{ 
    //new up MyModel model; 
    model.foo = vmf.foo; 

    return model; 
} 

アプリケーションがコード化されている場合、私たちは生活のために正確に何をしますか?

+2

:) – Omu

2

ValueInjecterはそれをしない、それは非常に使いやすいです:

//flatenning 
personDto.InjectFrom<FlatValueInjection>(person); 

//unflattening 
person.InjectFrom<UnflatValueInjection>(personDto); 

//this is just mapping without flattening/unflattening 
foo.InjectFrom(bar) 
関連する問題