有人可以解释一下我如何使用 Automapper 将 DB int 值映射到字符串,使用 Enums 作为集合。
我有以下
枚举
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 转换为状态,但是如何将 int 或 Status 转换为 DTO 中的字符串?我失去了任何帮助将不胜感激。
我意识到这里需要进行 2 次转换,从数据库中提取数据时将 id 转换为 enum 并且 enum 需要填充,然后 enum 到字符串需要执行
干杯