简介
我正在创建POC,以将旧的Web表单应用迁移到MVC。作为其一部分,我希望它使用新的(到此位置)工具,例如Automapper,jQuery,Entity Framework等。
我被困在如何正确设置和使用Automapper配置文件上。我认为看到较旧版本的Automapper附带的帮助可能会使我感到困惑。
我想我正在忽略一个非常简单的东西。
详细信息
我有一个工厂方法可以从数据库中获取一些东西,并使用自动映射器将它们从EF表示形式转换为与db无关的表示形式。首先,我只是将映射插入了我的查询方法中:
var typeConfig = new MapperConfiguration(cfg => cfg.CreateMap<Db.ClaimType,ApplicationObjects.Claims.ClaimType>()
.ForMember(dest => dest.Id,opts => opts.MapFrom(src => src.ID)));
var aoTypes = typeConfig.CreateMapper().Map<List<Db.ClaimType>,List<ApplicationObjects.Claims.ClaimType>>(claimTypes);
return aoTypes;
那很好。
现在,我希望我们能够在应用程序中声明一次每个映射,因此所有更新都将应用于所有用途。我阅读了有关Automapper配置文件的信息,并创建了一个简单的配置文件:
public class ClaimProfile : Profile
{
public ClaimProfile()
{
var claimTypeMappingDbToAO = CreateMap<Db.ClaimType,opts => opts.MapFrom(src => src.ID));
var claimMappingDbToAO = CreateMap<Db.Claim,ApplicationObjects.Claims.Claim>()
.ForMember(dest => dest.Id,opts => opts.MapFrom(src => src.ClaimID))
.ForMember(dest => dest.ClaimTypeId,opts => opts.MapFrom(src => src.ClaimType))
.ForMember(dest => dest.ClaimType,opts => opts.MapFrom(src => src.ClaimType1));
}
}
和一个配置类,该类在Global.asax的Application_Start中执行
public class AutoMapperConfig
{
public static void Initialize()
{
MapperConfiguration config = new MapperConfiguration(cfg =>
{
cfg.AddProfile(new ClaimProfile());
});
}
}
我不清楚如何更改工厂以使用映射的配置文件版本。