私は2つのクラスを持っています:
source.Employee と destination.Employee 。
関数の宛先プロパティ名、つまりdestination.TestEnum1とソースプロパティ名、つまりsource.TestEnum1に2つの名前しかありません。
以下で述べたように、式を動的に作成したいと思います。
var mapExpr = Mapper.CreateMap<Soure.Employee, destination.Employee>().ForMember(destination => destination.TestEnum1, opt => opt.MapFrom(source => (destination.MyEnum2)source.TestEnum1));
表現はあくまで
destination => destination.TestEnum1, opt => opt.MapFrom(source => (destination.MyEnum2)source.TestEnum1)
Project().To(); で Enum をマップするために作成しています。として
Mapper.CreateMap<Soure.MyEnum1, destination.MyEnum2>()
MyEnum2 を int 32 にマップできないという例外が発生します。
元の従業員:
namespace Soure
{
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public Department dept1 { get; set; }
public int age { get; set; }
public MyEnum1 TestEnum1 { get; set; }
}
public enum MyEnum1
{
red = 1,
yellow = 2
}
}
宛先の従業員クラス:
namespace destination
{
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public int age { get; set; }
public MyEnum2 TestEnum1 { get; set; }
public Departments dept1 { get; set; }
}
public enum MyEnum2
{
red = 1,
yellow = 2
}
}