Mar*_*ark 18 c# entity-framework automapper
有人可以解释我如何使用Automapper将DB int值映射到字符串,使用Enums作为集合.
我有以下内容
枚举
public enum Status { Open, Closed }
Run Code Online (Sandbox Code Playgroud)
EF 4.1域模型
public class MyEntity
{
...
public int StatusId { get; set; }
public virtual Status Status { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Dto正在网站上使用
public class MyEntityDto
{
public string Status { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当前的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))
Run Code Online (Sandbox Code Playgroud)
第一行中的EnumConverter将int转换为状态良好而没有问题,但是如何将int或Status转换为DTO中的字符串?我失去任何帮助将不胜感激.
我知道这里需要2次转换,当从数据库中提取数据时枚举的id和enum需要填充然后枚举到字符串需要做
干杯
Ser*_*kiy 39
Mapper.CreateMap<MyEntity, MyEntityDto>()
.ForMember(destination => destination.Status,
opt => opt.MapFrom(source => Enum.GetName(typeof(Status), source.StatusId)));
Run Code Online (Sandbox Code Playgroud)
此外,您不需要映射int
到Status
枚举.
归档时间: |
|
查看次数: |
15484 次 |
最近记录: |