我有这两个类:
public class MyModel()
{
public int Id {get; set;}
public string Name {get; set;}
public bool IgnoreModel {get; set;}
}
public class MyDto()
{
public int Id {get; set;}
public string Name {get; set;}
public bool IgnoreDto {get; set;}
}
我想忽略
IgnoreModel
和 IgnoreDto
两个类。我的映射代码如下:Mapper.CreateMap<MyModel, MyDto>().Bidirectional()
.ForMember(model=> model.IgnoreModel, option => option.Ignore())
.ForSourceMember(dto => dto.IgnoreDto, option => option.Ignore());
其中Bidirectional()是一种扩展:
public static IMappingExpression<TDestination, TSource> Bidirectional<TSource, TDestination>(this IMappingExpression<TSource, TDestination> expression)
{
return Mapper.CreateMap<TDestination, TSource>();
}
然而,我遇到了一个错误,提示IgnoreDto
没有被映射:
发现未映射的成员。请查看下面的类型和成员。 添加自定义映射表达式、忽略、添加自定义解析器或修改源/目标类型。
MyModel -> MyDto (目标成员列表) ModelAssembly.MyModel -> DtoAssembly.MyDto (目标成员列表)
未映射的属性: IgnoreDto
如何正确地忽略这种映射?
Mapper.AssertConfigurationIsValid()
的输出是什么?另外,出于好奇,删除Bidirectional()
并手动映射 model->dto 和 dto->model 会有什么区别吗? - Nate BarbettiniBidirectional
方法来自哪里? - Andrew Whitaker