加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – AutoMapper数据填充

发布时间:2020-12-16 01:45:40 所属栏目:百科 来源:网络整理
导读:是否可以使用AutoMapper来填充另一个对象的详细信息?例如(假设先前的配置): var foo = new Foo { PropA = "",PropB = "Foo" };var bar = new Bar { PropA = "Bar",PropB = "" };Mapper.MapFoo,Bar(foo,bar);Console.WriteLine(bar.PropB); //Returns "Foo"
是否可以使用AutoMapper来填充另一个对象的详细信息?例如(假设先前的配置):

var foo = new Foo { PropA = "",PropB = "Foo" };
var bar = new Bar { PropA = "Bar",PropB = "" };

Mapper.Map<Foo,Bar>(foo,bar);

Console.WriteLine(bar.PropB); //Returns "Foo"

只是想知道是否有人尝试过这种奇怪的映射用法,这更像是将一个对象的匹配数据合并到另一个对象中.

提前致谢!

更新:

对于这种情况,看起来ValueInjector也更合适.在StackOverflow上已经对AutoMapper与ValueInjecter的适当用法进行了一些很好的讨论.

解决方法

如果属性名称匹配,则它们将自动映射.如果由于某种原因他们没有,您可以自己指定映射.

如下所示,PropA与PropertyA不匹配,因此您必须指定映射.但是,PropB匹配,所以你没有.

var foo = new Foo { PropA = "",PropB = "Foo" };
var bar = new Bar { PropertyA = "Bar",PropertyB = "" };

Mapper.CreateMap<Foo,Bar>()
      .ForMember(dest => dest.PropertyA,opt => opt.MapFrom(src => src.PropA));

Mapper.Map<Foo,bar);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读