如何解决Dotnet AutoMapper Flat模式到复杂的层次结构
我有一个结构非常平坦的数据库表。好吧,一旦返回到dotnet中的对象,我想将结果查询创建为更结构化和层次化的格式。为此,我创建了几个模型类,它们代表我要如何组织返回的数据。例子
平面对象
Public class FlatObject {
public string key1 {get; set;}
public string key2 {get; set;}
public string key3 {get; set;}
public string key4 {get; set;}
}
结果对象
public class ResultObject {
public Category1 category1 {get;set;}
public Category2 category2 {get;set;}
public Category3 category3 {get;set;}
}
CategoryExample
public class Category1 {
public SubCategory1 sCategory1 {get;set;}
}
子类别
public class SubCategory1 {
public string key1 {get;set;}
}
您会注意到此层次结构中有一些深层对象,而我试图将键从falt对象映射到这些深层嵌套的对象。我已经尝试过AutoMapper,但在映射对象深处却很费劲。关于如何实现此目标的任何见解?
解决方法
为了展开对象,请首先以相反的方向创建贴图,即展开。然后,添加ReverseMap()
,您就可以开始了:
CreateMap<ResultObject,FlatObject>()
.ForMember(
d => d.key1,o => o.MapFrom(s => s.category1.sCategory1.key1))
.ForMember(
d => d.key2,o => o.MapFrom(s => s.category2.sCategory2.key2))
.ForMember(
d => d.key3,o => o.MapFrom(s => s.category3.sCategory3.key3))
.ForMember(
d => d.key4,o => o.MapFrom(s => s.category4.sCategory4.key4))
.ReverseMap();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。