在类中映射相同的对象类型属性会调用Equals和GetHashCode

时间:2016-05-25 17:55:18

标签: c# automapper

我有这门课。

bool Equals(object obj)

其中T实现int GetHashCode()IEquatable<SyncObject>IEnumerable<ConflictItem<Order>>

所以假设你有IEnumerable<ConflictItem<OrderDataObject>>并映射到ConflictItem<OrderDataObject>,这将调用Equals和GetHashCode,我不明白其中的原因。

问题是映射的结果对象config.CreateMap<ConflictItem<Order>, ConflictItem<OrderDataObject>>().ReverseMap(); config.CreateMap<Order, OrderDataObject>().ReverseMap(); 在CurrentItem和RequestedUpdateItem属性中都以相同的对象实例结束。

我的简单Automapper配置。

{{1}}

我理解当列表中的对象或两个对象之间的相等性时,为什么Automapper会匹配另一个对象中两个不同属性的相等性?有没有办法用配置覆盖这种行为?

1 个答案:

答案 0 :(得分:1)

该库似乎添加了一个选项来禁用缓存作为Map方法的选项:

$(document).ready(function() {
    $(this).on("click", ".trigger", function() {
        var content = $(this).html();
        $("input[name='search']").val(content);
    });
});

试一试,看看它是否可以解决您的问题。

我一直在关注GitHub上的5.0 Beta版本,看起来它们可能默认禁用此缓存:

https://github.com/AutoMapper/AutoMapper/releases/tag/v5.0.0-beta-1