gpt4 book ai didi

asp.net - 用于将包含子集合的DTO映射回域模型的设计模式

转载 作者:行者123 更新时间:2023-12-03 12:19:20 25 4
gpt4 key购买 nike

最长时间以来,我一直在使用AutoMapper既将域模型映射到DTO,又将DTO映射回到域模型。

我将EF4用于我的ORM,并且当要映射的模型包含需要添加/更新/删除的子集合时,此映射会变得非常难看。在我进行项目时,我越来越遇到这个问题:博客文章的照片,订单的包装等。

当从DTO->域模型开始时,我最终不得不添加一个BeforeMap调用,该调用从域模型的集合中删除所有实体,然后为该集合添加一个自定义ValueResolver,该集合从DTO中获取每个实体的PK,然后将其获取从数据库(因此, Entity Framework 不认为我要添加新实体),然后将其重新添加到域模型的集合中,然后将任何更新应用于单个字段。

这是一个非常丑陋的解决方案,但是我尝试手动处理更新这些集合的尝试也是如此。有人对清洁方法有任何建议吗?

最佳答案

您可能需要使用ValueInjecter而不是AutoMapper来实现此功能。看看这个问题,双方的制造者都在AutoMapper vs ValueInjecter中考虑。我个人还没有使用Value Injecter,但是它是为执行您要尝试执行的操作而构建的。 AutoMapper更适合于扁平化,但是AutoMapper的作者承认,它不是用于“Unflattening”的好工具,这是您要尝试做的。

关于asp.net - 用于将包含子集合的DTO映射回域模型的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4587536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com