c# - AutoMapper Include 未按预期工作?

标签 c# automapper

我(被迫)使用 AutoMapper version 1.1.0.188 。我有一个基类 SchufaBaseFeature 和一个派生类 SchufaFeature

public partial class SchufaFeature : SchufaBaseFeature
{//some code here}

为什么 Include 没有像我预期的那样工作?

这就是我使用 AutoMapper 所做的(映射到数据库):

 //TODO include does not work as it should!
        Mapper.CreateMap<SchufaBaseFeature, CFSCHUFAFEATURE>()
              .ForMember(dest => dest.FEATUREWITHOUTBIRTHDATE, opt => opt.MapFrom(src => GetSpecified(EnumToBool(src.featureWithoutBirthdate), src.featureWithoutBirthdateSpecified)))
              .ForMember(dest => dest.OWNFEATURE, opt => opt.MapFrom(src => GetSpecified(src.ownFeature, src.ownFeatureSpecified)))
              .Include<SchufaFeature, CFSCHUFAFEATURE>()
            ;

 Mapper.CreateMap<SchufaFeature, CFSCHUFAFEATURE>()
                .ForMember(dest => dest.DATE, opt => opt.MapFrom(src => GetDate(src.date)))
                .ForMember(dest => dest.AMOUNT, opt => opt.MapFrom(src => src.amount.amount))
                .ForMember(dest => dest.AMOUNTCUR, opt => opt.MapFrom(src => src.amount.currency))
                .ForMember(dest => dest.NUMBEROFINSTALLEMENTS, opt => opt.MapFrom(src => TryParseToInt(src.numberOfInstallments)))
                .ForMember(dest => dest.INSTALLMENTTYPE, opt => opt.MapFrom(src => src.installmentType))
              ;

它正确映射了 FEATUREWITHOUTBIRTHDATE 和 OWNFEATURE,但未调用 Include。当我运行调试器时,第二个 CreateMap 永远不会被调用。

我已经检查了文档here (AutoMapper Github Inheritance)我仍然不明白我做错了什么。可能是什么问题?是我的问题还是这个版本的 AutoMapper 存在错误?

最佳答案

您可能需要切换创建 map 的顺序。 Include 有一个...功能,可以检查现有映射的配置。如果现有 map 尚不存在,您需要切换顺序。

当然,这在 5.0 中已全部修复,但你被困住了:)

关于c# - AutoMapper Include 未按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38720096/

相关文章:

c# - 控制 WCF XML 输出中的命名空间前缀

C# Win 表单 : Detect last interaction (touch) and display confirmation box

c# - 使用 Microsoft.Bcl.Async 的 .NET 4.0 程序集的 RegAsm 失败

asp.net-mvc - 如何为Unity和AutoMapper实现MVC Bootstrap ?

asp.net-mvc-2 - EF4 - 是否可以查看哪个 ObjectContext 正在跟踪特定实体?

javascript - Node.js automapper-ts 包不映射嵌套对象/属性

c# - Automapper - ReverseMap() 不执行映射

c# - WPF 如果 ViewModel 中的 bool 值为 true,如何跳过动画结束?

c# - 在 Razor @Html.EditorFor 中使用文化设置日期格式

c# - 从 HttpRouteCollection 中删除路由