プレゼンテーション モデルを作成しましたが、それを (AutoMapper を使用して) ViewModel にマップしたいと考えています。ViewModel は複合です / 私はパーシャルを使用していて、たとえば KeyboardsViewModel を他のビュー/パーシャルでも再利用したいからです。
このプレゼンテーション モデルを ViewModel にマップ (セットアップ マッピング) するにはどうすればよいですか? これは正しいアプローチですか?
ありがとう!
public class MainPresentationModel : BasePresentationModel
{
// Should map into the MainViewModel.Keyboards.Keyboards
public int DefaultKeyboard { get; set; }
// Should map into the MainViewModel.Keyboards.DefaultKeyboard
public IList<Keyboard> Keyboards { get; set; }
// Should map into the MainViewModel.Something
public string Something { get; set; }
}
public class MainViewModel : BaseViewModel
{
public KeyboardsViewModel Keyboards { get; set; }
public string Something { get; set; }
}
public class KeyboardsViewModel
{
public int DefaultKeyboard { get; set; }
public IList<Keyboard> Keyboards { get; set; }
}
編集済み:試してみた後、これが1つのオプションだと思います:
Mapper.CreateMap<MainPresentationModel, MainViewModel>()
.ForMember(d => d.Keyboards, opt => opt.MapFrom(src => src));
Mapper.CreateMap<MainPresentationModel, KeyboardsViewModel>();
うまくいくようですが、これが最適/正しい方法かどうかはわかりません...