当前位置: 首页 > 知识库问答 >
问题:

将LLBLGen实体映射到DTO

何玺
2023-03-14

我正在尝试使用AutoMapper在LLBLGen实体和DTO之间创建映射。

我的DTO如下所示:

// Parent
public int Id { get; set; }
public List<Child> Children{ get; set; } // One to Many

// Child
public int Id { get; set; }
public int Parent { get; set; } // Foreign key to parent Id

ParentEntity包含一个与DTO列表同名的ChildCollection和一个Id(需要忽略其他LLBL字段)。因此,当ParentEntity映射到父d to时,它也应该将ChildCollection映射到一个子列表。

这就是我到目前为止得到的:

ParentEntity parentEntity = new ParentEntity(id);

AutoMapper.Mapper.CreateMap<ParentEntity, Parent>();
AutoMapper.Mapper.CreateMap<ChildCollection, List<Child>>();

var parent = AutoMapper.Mapper.Map<Parent>(parentEntity);

这会导致Id被映射,但List的计数为0。

我怎样才能让它发挥作用?

更新:

尝试与我之前的尝试相同,但手动映射子列表也会导致相同的问题:Id被映射,但列表为空。

Mapper.CreateMap<ParentEntity, Parent>()
    .ForMember(dto => dto.Children, opt => opt.MapFrom(m => m.Children));

共有1个答案

凌蕴藉
2023-03-14

这一行没有帮助:

AutoMapper.Mapper.CreateMap<ChildCollection, List<Child>>();

相反,您应该添加显式映射类到类:

AutoMapper.Mapper.CreateMap<ChildEntity, Child>();

然后您应该指定要映射的确切属性。两个属性都应具有列表类型或类似类型(List

.ForMember(dto => dto.Children, opt => opt.MapFrom(m => m.Children));

足够的默认映射:

  Mapper.CreateMap<ParentEntity, Parent>();

 类似资料:
  • 问题内容: 我的实体是这样的: 现在,我想将此newPerson对象映射到这样的JSON对象中, 注意:以上仅是示例。 我需要的是,我需要在序列化时自定义Key。默认情况下,它以属性名称为键。我无法更改属性名称。这该怎么做? 另外,是否可以更改JSON obj中出现的键/值对的顺序? 问题答案: 您需要将属性添加到您的类和属性。套装的属性到您的自定义属性名称和属性属性定义的顺序。 然后,您可以执行

  • 问题内容: 我将开始一个使用Spring和Hibernate管理的REST应用程序项目。 我知道Spring允许您从HTTP Request(带有注释)中获取Java对象。如果此Java对象也是Hibernate实体,是否有冲突?嵌套对象是否起作用(如关系)? 问题答案: 我们正在使用这种方法来简化设计并摆脱许多dto(我们滥用它们太多了)。基本上,它对我们有用。 但是,在我们的REST模型中,我

  • 问题内容: 我很确定,这是有关XML到Java Object转换的许多重复问题之一。但是由于找不到更简单的解决方案,所以我启动了该线程。 我有一个xsd [实际上是我正在设计]和xml。我想按照映射将xml数据自动映射到Java bean 现在我的Java类将是 是否有任何简单的工具/框架可以将数据从XML自动映射到Java Bean [必须支持属性/元素映射]。教程会很好。 顺便说一句,我正在使

  • 我在两个不同的依赖项DependencyA和DependencyB中有两个类TableNameA和TableNameB,它们表示表table_name_a和table_name_b,字段如下所述。 如上所述,我正在使用jooq,并且我想将table_name_a和table_name_b记录映射到TableNameA和TableNameB类中,但是在TableNameA的对象中,只有“FIELD”

  • 我有下面的结构,我想用MapStruct映射这个。 下面是mapstruct为toDTO方法生成的实现 下面是mapstruct为toEntity方法生成的实现 我的问题是方法只在文本不为空时设置注释。但是方法不检查空文本或空文本。因此,如果我在DTO中获得,它将创建一个新的comment对象并将文本设置为null。如何避免这一点?有人能解释一下这种行为并建议我正确的做法吗?谢了!

  • 我正在为我们班做一个项目。需要将DTO映射到实体,反之亦然。我的DTO没有Id字段,转换正在控制器层进行。另外两个类正在扩展我的实体,因此@Superbuilder。 我的转换实体- 但是DTO- 如果你们谁能帮我找到解决办法,我将不胜感激。提前感谢您的时间和回复。 =======我的DTO===== =====我的实体===== } ====ModelMapper的Bean===== =====