微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我是否需要同时创建automapper createmap?

如何解决我是否需要同时创建automapper createmap?

| 这可能是一个愚蠢的问题! (n00b到AutoMapper且时间短!) 我想使用AutoMapper将EF4实体映射到viewmodel类。 1)如果我打电话
CreateMap<ModelClass,viewmodelClass>()
那我还需要打电话吗
CreateMap<viewmodelClass,ModelClass>()
执行相反的操作? 2)如果两个类具有相同的属性名称,那么我是否完全需要CreateMap语句,或者这仅用于“特定/自定义”映射?     

解决方法

        在AutoMapper中,您具有“源”类型和“目标”类型。因此,只有在具有对应的CreateMap的情况下,您才能在此Source类型和Destination类型之间进行映射。因此,回答您的问题: 您无需定义反向映射。仅当您打算重新映射时,才需要这样做。 是的,您需要调用CreateMap来指示那些类型是可映射的,否则在调用
Map<TSource,TDest>
时会抛出异常,告诉您源类型和目标类型之间不存在映射。     ,        有关偶然发现此问题的人员的信息。现在似乎有一种内置的方法可以通过在
CreateMap()
配置链的末尾添加
.ReverseMap()
调用来实现反向映射。     ,        我使用了扩展方法来完成两种方式的映射
    public static IMappingExpression<TDestination,TSource> BothWays<TSource,TDestination>
        (this IMappingExpression<TSource,TDestination> mappingExpression)
    {
        return Mapper.CreateMap<TDestination,TSource>();
    }
用法:
 CreateMap<Source,Dest>().BothWays();
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。