1
我有一個EntityDtos的集合。AutoMapper和基本類型
每個EntityDto都有一個名爲EntityType的屬性。
每個EntityTypes對應於不同的子類,像這樣
abstract class EntityBase { EntityType = EntityType.Base; }
class EntityOne : EntityBase { EntityType = EntityType.One; }
class EntityTwo : EntityBase { EntityType = EntityType.Two; }
我試圖映射到EntityBase的集合。 AutoMapper因錯誤「無法創建抽象類的實例」而失敗。我有Type枚舉,因此知道每個類型應映射到什麼類型......但實際上,只是希望它們都映射到我的EntityBase集合中。
我不知道這一點......
我有這個工作,但它是非常難看。
Mapper.CreateMap<EntityCollectionDto, EntityCollection>().ForMember(
s => s.Entities, d => d.MapFrom(
x => new List<EntityBase>(
from p in x.Entitys
select p.EntityType == EntityType.One ? Mapper.Map<EntityOne>(p) as EntityBase
: p.EntityType == EntityType.Two ? Mapper.Map<EntityTwo>(p) as EntityBase
: Mapper.Map<EntityThree>(p) as EntityBase
)
)
);
Mapper.CreateMap<EntityDto, EntityOne>();
Mapper.CreateMap<EntityDto, EntityTwo>();
同意,我會考慮改變它。謝謝。 – CaffGeek