これはばかげた質問かもしれません! (AutoMapperへのn00bと時間-短い!)
AutoMapperを使用してEF4エンティティからViewModelクラスにマップしたいと思います。
1)電話したら
CreateMap<ModelClass, ViewModelClass>()
それから私も電話する必要がありますか
CreateMap<ViewModelClass, ModelClass>()
逆を実行するには?
2)2つのクラスのプロパティ名が同じである場合、CreateMapステートメントが必要ですか、それとも「特定の/カスタム」マッピング専用ですか?
AutoMapperには、ソースタイプと宛先タイプがあります。したがって、対応するCreateMapがある場合にのみ、このソースタイプと宛先タイプの間でマッピングできます。だからあなたの質問に答えるために:
Map<TSource, TDest>
を呼び出すときに例外がスローされ、ソースタイプと宛先タイプの間にマッピングが存在しないことが通知されます。この質問に出くわした人々の情報のために。 .ReverseMap()
構成チェーンの最後にCreateMap()
呼び出しを追加することにより、逆マッピングを実現する組み込みの方法があるようです。
拡張メソッドを使用して、両方の方法でマッピングを行いました
public static IMappingExpression<TDestination, TSource> BothWays<TSource, TDestination>
(this IMappingExpression<TSource, TDestination> mappingExpression)
{
return Mapper.CreateMap<TDestination, TSource>();
}
使用法:
CreateMap<Source, Dest>().BothWays();