Asp.net core Automapper v8并没有忽略EF(实体框架)类的导航属性
以下是Automapper配置文件的代码:Asp.net core Automapper v8并没有忽略EF(实体框架)类的导航属性,asp.net-core,entity-framework-6,automapper,Asp.net Core,Entity Framework 6,Automapper,以下是Automapper配置文件的代码: public class MyMappingProfile: Profile { public MyMappingProfile() { Mapper.Initialize(cfg => { cfg.CreateMap<MyModelClass, MyEntityClass>() .ForMember(dest => dest.Navigat
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());
});
}
}
公共类MyMappingProfile:Profile
{
公共MyMappingProfile()
{
Mapper.Initialize(cfg=>{
cfg.CreateMap()
.FormMember(dest=>dest.NavigationProp1,opt=>opt.Ignore())
.FormMember(dest=>dest.NavigationProp2,opt=>opt.Ignore());
});
}
}
下面是创建新实体对象的代码(仅供参考,我在.NET核心项目中使用此代码,因此_mapper是:
var newEntity = _mapper.Map<MyModelClass, MyEntityClass>(model);
var newEntity=\u mapper.Map(模型);
但是上面的代码行会产生以下错误:
找到未映射的成员。请查看下面的类型和成员。
添加自定义映射表达式、忽略、添加自定义解析程序或修改源/目标类型
对于无匹配构造函数,请添加无参数构造函数、添加可选参数或映射所有构造函数参数
AutoMapper为您创建了此类型映射,但无法使用当前配置映射您的类型。
MyModelClass->MyEntityClass(目标成员列表)
MyModelClass->MyEntityClass(目标成员列表)
未映射属性:
导航Prop1
导航Prop2
你知道为什么Automapper还在抱怨未映射的成员,即使他们被忽略了
谢谢。我最终通过如下更改映射配置文件类解决了这个问题:
public class MyMappingProfile: Profile
{
public MyMappingProfile()
{
CreateMap<MyModelClass, MyEntityClass>()
.ForMember(dest => dest.NavigationProp1, opt => opt.Ignore())
.ForMember(dest => dest.NavigationProp2, opt => opt.Ignore());
}
}
公共类MyMappingProfile:Profile
{
公共MyMappingProfile()
{
CreateMap()
.FormMember(dest=>dest.NavigationProp1,opt=>opt.Ignore())
.FormMember(dest=>dest.NavigationProp2,opt=>opt.Ignore());
}
}
干杯。MyModelClass和MyEntityClass的定义是什么?与我们分享相关的代码,迷你演示会很有帮助。您没有正确配置它。请看。@Lucian Bargaoanu,您能指出我在配置中到底做错了什么吗?我浏览了您提供的链接,但无法找出错误所在配置错误。谢谢。从零开始,像文档中那样进行一个简单的测试。让它工作起来。然后你就会看到不同。由于时间限制,我不能在这方面花费太多时间。因此我将缺少的目标属性都添加到源中,现在这已经解决了问题。感谢所有人的建议。