Enums をコレクションとして使用して、Automapper を使用して DB int 値から文字列にマップする方法を説明してください。
私は次のものを持っています
列挙型
public enum Status { Open, Closed }
EF 4.1 ドメイン モデル
public class MyEntity
{
...
public int StatusId { get; set; }
public virtual Status Status { get; set; }
}
ウェブサイトで使用されている Dto
public class MyEntityDto
{
public string Status { get; set; }
}
現在の Automapper マッピング
Mapper.CreateMap<int, Status>().ConvertUsing<EnumConverter<Status>>();
Mapper.CreateMap<Enum, string>().ConvertUsing(src => src.ToString());
Mapper.CreateMap<MyEntity, MyEntityDto>()
.ForMember(d => d.Status, o => o.MapFrom(y => y.StatusId))
最初の行の EnumConverter は int を問題なく status に変換しますが、int または Status を DTO の文字列に変換するにはどうすればよいですか? 私は助けを失いました。
ここでは 2 つの変換が必要であることに気付きました。データベースからデータを取得するときに id を列挙型に変換し、列挙型を入力する必要があり、次に列挙型を文字列に変換する必要があります。
乾杯