Asp.net mvc 当自动映射域类和自定义模型时,如何重新移动循环引用?
我正在使用autommapper将域类转换为asp.net中的自定义模型,问题是automapper会创建循环 具有子对象的引用,如何删除循环引用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>()
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()解析循环引用的可能重复项。在较新版本中,默认情况下会处理该问题。