Asp.net mvc 当自动映射域类和自定义模型时,如何重新移动循环引用?

Asp.net mvc 当自动映射域类和自定义模型时,如何重新移动循环引用?,asp.net-mvc,automapper-5,Asp.net Mvc,Automapper 5,我正在使用autommapper将域类转换为asp.net中的自定义模型,问题是automapper会创建循环 具有子对象的引用,如何删除循环引用 var config = new MapperConfiguration(cfg => { cfg.CreateMap<Appointment, AppointmentModel>()

我正在使用autommapper将域类转换为asp.net中的自定义模型,问题是automapper会创建循环 具有子对象的引用,如何删除循环引用

 var config = new MapperConfiguration(cfg =>
                    {
                        cfg.CreateMap<Appointment, AppointmentModel>()
                             //.ForMember(x => x.Profile.Appointments, opt => opt.Ignore())

                             //.ForPath(m => m.User.Profile, opt => opt.Ignore())
                             // .ForPath(m => m.User.Appointments, opt => opt.Ignore())
                             //  .ForPath(m => m.User.Appointments1, opt => opt.Ignore())
                             //   .ForPath(m => m.User.Appointments2, opt => opt.Ignore())
                             //     .ForPath(m => m.User.City, opt => opt.Ignore())
                             //       .ForPath(m => m.User.Claims, opt => opt.Ignore())
                             //       .ForPath(m => m.User.Employee, opt => opt.Ignore())
                             //       .ForPath(m => m.User.Logins, opt => opt.Ignore())
                             //       .ForPath(m => m.User.Physician, opt => opt.Ignore())

                             .ForMember(dest => dest.Profile,
                                    opt => opt.ResolveUsing(src => src?.Profile))
                        .ForMember(dest => dest.DoctorUser,
                                    opt => opt.ResolveUsing(src => src?.User1))
                             .ForMember(dest => dest.User,
                                    opt => opt.ResolveUsing(src => src?.User));

                    });
                    IMapper iMapper = config.CreateMapper();

                    return iMapper.Map<List<Appointment>, List<AppointmentModel>>(model?.ToList());
var config=new-MapperConfiguration(cfg=>
{
cfg.CreateMap()
//.ForMember(x=>x.Profile.appoints,opt=>opt.Ignore())
//.ForPath(m=>m.User.Profile,opt=>opt.Ignore())
//.ForPath(m=>m.User.appoints,opt=>opt.Ignore())
//.ForPath(m=>m.User.appoints1,opt=>opt.Ignore())
//.ForPath(m=>m.User.Appointments2,opt=>opt.Ignore())
//.ForPath(m=>m.User.City,opt=>opt.Ignore())
//.ForPath(m=>m.User.Claims,opt=>opt.Ignore())
//.ForPath(m=>m.User.Employee,opt=>opt.Ignore())
//.ForPath(m=>m.User.Logins,opt=>opt.Ignore())
//.ForPath(m=>m.User.medicine,opt=>opt.Ignore())
.FormMember(目标=>目标配置文件,
opt=>opt.resolvusing(src=>src?.Profile))
.ForMember(dest=>dest.DoctorUser,
opt=>opt.resolvusing(src=>src?.User1))
.ForMember(dest=>dest.User,
opt=>opt.resolvesusing(src=>src?.User));
});
IMapper IMapper=config.CreateMapper();
返回iMapper.Map(model?.ToList());

我可以使用MaxDepth()和PreserveReferences()解析循环引用的可能重复项。在较新版本中,默认情况下会处理该问题。