您好,关于PropertyMappingValue使用IEnumerable<string>存储及Reverse()有两个问题想确认一下
来源:15-5 【应用】映射字典

孔令瑞
2023-01-12
问题 1:PropertyMappingValue为什么使用IEnumerable存储?
首先我总结了一下上节课(15-4)的内容是想类似AutoMapper的封装方式来进行封装属性字典PropertyMappingDictionary,根据Dto(TSource) -> Model (TDestination)来定位出映射规则,可是PropertyMappingValue为什么使用IEnumerable而不使用更便捷string类型呢?对于前端开发而言只能直观接触到Dto中的字段,如Price这类字段,但是Price并不是数据库或Model本身存在的,而是由原价OriginalPrice及折扣DiscountPresent字段计算得出的,我猜这里定义IEnumerable就是为了解决诸如此类问题所以定义成了集合的形式?【不考虑Price这个字段排序使用原价OriginalPrice及折扣DiscountPresent逻辑上是否恰当】望解答
问题 2:如何理解Reverse()在代码中的作用?
接着上面代码PostMan排序OrderBy=price进行调试
我猜这里是不是项目有哪些特殊需要进行的这样处理?
1回答
-
阿莱克斯刘
2024-09-27
PropertyMappingValue 使用 IEnumerable<string> 来存储 DestinationProperties,主要是为了灵活性和扩展性。以下是一些具体原因:
1. 支持多个目标属性
在某些情况下,一个源属性可能需要映射到多个目标属性。使用 IEnumerable<string> 可以方便地存储和处理多个目标属性。2. 灵活性和扩展性
使用
IEnumerable<string>
提供了更大的灵活性,可以轻松地扩展和修改目标属性列表。例如,可以使用List<string>
、HashSet<string>
等不同的集合类型来实现IEnumerable<string>
,根据具体需求选择合适的数据结构。3. 兼容性
IEnumerable<string>
是一个通用接口,兼容性强,可以与 LINQ 等功能结合使用,方便进行查询和操作。例如,可以使用 LINQ 查询来过滤或转换目标属性列表。00
相似问题