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
Also you don’t need mapping from
inttoStatusenum.