Automapper v8不会忽略EF(实体框架)类的导航属性

时间:2019-03-13 20:48:44

标签: asp.net-core entity-framework-6 automapper

以下是Automapper配置文件的代码:

public class MyMappingProfile: Profile
{
    public MyMappingProfile()
    {
        Mapper.Initialize(cfg => {
            cfg.CreateMap<MyModelClass, MyEntityClass>()
                .ForMember(dest => dest.NavigationProp1, opt => opt.Ignore())
                .ForMember(dest => dest.NavigationProp2, opt => opt.Ignore());
        });
    }
}

下面是用于创建新实体对象的代码(仅供参考,我在.NET Core项目中使用此代码,因此_mapper是:

var newEntity = _mapper.Map<MyModelClass, MyEntityClass>(model);

但是上面的代码行会产生以下错误:

  

找到未映射的成员。在下面查看类型和成员。   添加自定义映射表达式,忽略,添加自定义解析器或修改源/目标类型

     

对于没有匹配的构造函数,请添加一个无参数ctor,添加可选参数,或映射所有构造函数参数

     

AutoMapper为您创建了此类型映射,但是无法使用当前配置来映射您的类型。   MyModelClass-> MyEntityClass(目标成员列表)   MyModelClass-> MyEntityClass(目标成员列表)

     

未映射的属性:

     

NavigationProp1

     

NavigationProp2

您知道为什么Automapper仍在为未映射的成员抱怨吗,即使他们被忽略了?

谢谢。

1 个答案:

答案 0 :(得分:1)

我终于通过更改映射概要文件类来解决它:

public class MyMappingProfile: Profile
{
    public MyMappingProfile()
    {
        CreateMap<MyModelClass, MyEntityClass>()
            .ForMember(dest => dest.NavigationProp1, opt => opt.Ignore())
            .ForMember(dest => dest.NavigationProp2, opt => opt.Ignore());
    }
}

干杯。