首页 新闻 赞助 找找看

c#中automapper7.0怎么映射

0
悬赏园豆:30 [已解决问题] 解决于 2018-08-06 09:46

比如有如下源,gender 如果是1的话就映射到男,2的话就映射到女。

    public class Source
    {
        public int gender { get; set; }

    }

目标

    public class Destination
    {
        private string gender { get; set; }
    }

这个怎么映射 ,在 网上找的教程貌似很少以前版本的automapper可以。7.0的就不行了。。有没有大神可以帮忙。

暖暖De幸福的主页 暖暖De幸福 | 初学一级 | 园豆:10
提问于:2018-08-03 09:54

你目前是怎么映射的?出现了什么错误?

dudu 5年前
< >
分享
最佳答案
0

参考:http://docs.automapper.org/en/stable/Custom-value-resolvers.html

 

public class CustomResolver : IValueResolver<Order, OrderDto, string>
{

public string Resolve(Order source, OrderDto destination, string destMember, ResolutionContext context)
{
if (source.Gender==1)
{
return "男";
}
else
{
return "女";
}
}
}

 

这样就可以实现了自定义映射逻辑了。

收获园豆:30
放逐人 | 小虾三级 |园豆:694 | 2018-08-03 16:18

好的。谢谢大神!!!

暖暖De幸福 | 园豆:10 (初学一级) | 2018-08-03 18:06

 再提个小问题啦。。如果源中有一个字段:gender(int) 

目标类中有两个字段:gender(string)和color(string)。

如果源gender=1的时候,目标gender为【男】,color为【red】

如果源gender!=1的时候,目标gender为【女】,color为【blue】。。

 

这个 怎么写呢。

暖暖De幸福 | 园豆:10 (初学一级) | 2018-08-03 18:10

@暖暖De幸福: 你再写个 ForMember 就好了,

就是  gender 一个,color 一个

放逐人 | 园豆:694 (小虾三级) | 2018-08-03 18:22

  好的。谢谢

暖暖De幸福 | 园豆:10 (初学一级) | 2018-08-06 09:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册