public class BaseViewModel
{
public MyEnum EnumValue {get;set;}
public string PropA { get; set; }
}
public class Enum1ViewModel : BaseViewModel
{
public string PropB {get; set;}
}
public class Enum2ViewModel : BaseViewModel
{
public string PropC {get; set;}
}
public class Enum3ViewModel : BaseViewModel
{
public string PropD {get; set;}
}
public enum MyEnum
{
Value1,
Value2,
Value3
}
public class MyEntity
{
public MyEnum EnumValue {get; set;}
public string PropA {get;set;}
public string PropB {get;set;}
public string PropC {get;set;}
public string PropD {get;set;}
public string PropE {get;set;}
}
public class MapperProfile : Profile
{
public MapperProfile()
{
CreateMap<Enum1ViewModel, MyEntity>()
.ForMember(m => m.EnumValue, o => o.UseValue(MyEnum.Value1)
.ForMember(m => m.PropC, o => o.Ignore())
.ForMember(m => m.PropD, o => o.Ignore())
.ForMember(m => m.PropE, o => o.Ignore());
CreateMap<Enum2ViewModel, MyEntity>()
.ForMember(m => m.EnumValue, o => o.UseValue(MyEnum.Value2)
.ForMember(m => m.PropB, o => o.Ignore())
.ForMember(m => m.PropD, o => o.Ignore())
.ForMember(m => m.PropE, o => o.Ignore());
CreateMap<Enum3ViewModel, MyEntity>()
.ForMember(m => m.EnumValue, o => o.UseValue(MyEnum.Value3)
.ForMember(m => m.PropB, o => o.Ignore())
.ForMember(m => m.PropC, o => o.Ignore())
.ForMember(m => m.PropE, o => o.Ignore());
// Question: How do I do the reverse mapping??
}
}
私はジミーボーガードにこの質問をしましたが、答えはおそらくもっと自分自身を助けることができると思いました。AutoMapper:列挙型の値に応じてビューモデルへのマッピングクラス
私がジミーの答えをここに掲載する前に、あるいは皆さんの誰かが自分で答えます。
コード内の問題は何ですか? –