How do i convert a int to an enum and a string using automapper and int from DB
automapper, c#, entity-framework
Solution
Mapper.CreateMap<MyEntity, MyEntityDto>()
.ForMember(destination => destination.Status,
opt => opt.MapFrom(source => Enum.GetName(typeof(Status), source.StatusId)));
Also you don't need mapping from `int` to `Status` enum.
Problem
Could someone please explain how I can use Automapper to map from DB int value to a string, using Enums as the collection. I have the following Enum ``` public enum Status { Open, Closed } ``` EF 4.1 Domain Model ``` public class MyEntity { ... public int StatusId { get; set; } public virtual Status Status { get; set; } } ``` Dto being used on website ``` public class MyEntityDto { public string Status { get; set; } } ``` Current Automapper mappings ``` 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)) ``` The EnumConverter in first line converts the int to a status fine without problem, but how do i convert the int or Status to the string in the DTO? Im lost any help would be appreciated. I realise there are 2 conversions required here, the id to the enum when the data is pulled from the database and enum needs populating and then the enum to string needs doing Cheers