我有两个大型的集合List<Class>
,具有数百个属性。
例如原始集合List<OriginalCollection>
和更新的集合List<UpdatedColleciton>
UpdatedCollection
将包含某些列中的值,这些列很可能不是OriginalCollection
的一部分,而UpdatedCollection
可能具有某些 KeyColumn [ID列] 而不是OriginalCollection
的一部分,并且我收到OriginalCollection
中设置的数千个数据,而UpdatedColletion
会在一段时间内增加记录。
我确实有一个要求,只有OriginalCollection
的空列或空列应由匹配的UpdatedCollection
值替换为 ID ,如果没有匹配的ID可用,则这些记录应该从OriginalCollection
的{{1}}中添加。
我尝试使用UpdatedCollection
,其中我尝试根据匹配ID使用AutoMapper
更新OriginalCollection
,为此我找不到我的集合中的任何UpdatedCollection
上述要求。
我正在寻找最有效的解决方案,该解决方案不应影响性能,这就是为什么我没有采用典型的联合和交叉路口的方式,因为Modal拥有数百个属性,并且有成千上万条记录,而我确实拥有我认为像AutoMapper configuration
之类的大量属性比在循环中编写逻辑以检查所有数千条记录的每一列上的值是更好的选择。
请提出任何更好且性能高效的解决方案,例如AutoMapper配置或任何其他.Net内置功能来实现此方案。
我还从https://github.com/AutoMapper/AutoMapper.Collection向AutoMapper
进行了检查
AutoMapper.Collection
但是它具有以下行为,并且无法按我的要求正常工作
- 如果ID匹配,则会将OrderDTO映射到Order
- 如果存在OrderDTO且订单未添加到集合中不适用于我
- 如果存在Order,并且OrderDTO没有从集合中删除对我不工作