在存储库classlibrary中使用AutoMapper

时间:2018-04-20 08:27:15

标签: asp.net .net repository automapper

我想第一次使用AutoMapper ..

    public static class AutoMapperWebConfig
{
    public static void Configure()
    {
        Mapper.Initialize(config =>
        {
            config.AddProfile(new WebConfigurationProfile()); 
        });
    }
}

public class WebConfigurationProfile : Profile
{
    public WebConfigurationProfile()
    {
        this.CreateMap<PovUsers, PovUserView>()
            .ForMember(x => x.Name, m => m.MapFrom(p => p.PovUserName))
            .ForMember(x => x.User, m => m.MapFrom(p => p.PovUserId));
    }
}

我有几个项目在解决方案中。一个Web项目和一个与EntityFramework DB Context一起使用的类库(Repository)。 AutoMapper正在Global.asax初始化。

有没有办法在存储库中使用此Mapper。现在,当我尝试这样做时,我得到一个错误(缺少地图):

        public IQueryable<PovUserView> GetSet() {
        return this.dbSet.ProjectTo<PovUserView>(); ;
    }

感谢您的帮助......

1 个答案:

答案 0 :(得分:1)

将映射配置和配置文件放在存储库项目中的类中,如下所示:

public class AutoMapperConfiguration
{
    public static void Configure()
    {
        Mapper.Initialize(cfg =>
        {
            cfg.AddProfile<GeneralMapping>();
            cfg.AddProfile<CustomerMapping>();
        });
    }
}

并从任何要使用存储库的Web应用程序的Global.asax调用Configure的静态方法。