我有一系列与彼此有关系的课程。像:
public class Patient : Entity
{
public virtual string FirstName { set; get; }
public virtual OfficeBranch OriginalOfficeBranch { set; get; }
}
public class OfficeBranch : Entity
{
public virtual string Title { set; get; }
}
和DTO:
public class PatientDto : BaseGeneralDto
{
public string FirstName { set; get; }
public OfficeBranchDto OriginalOfficeBranch { set; get; }
}
public class OfficeBranchDto : BaseGeneralDto
{
public string Title { set; get; }
}
我使用AutoMapper
将它们相互映射。我正在使用NHibernate
来坚持。更新PatientDto
时,AutoMapper
导致OfficeBranchDto
中的更改也会导致NHibernate
脏会话发生冲洗,这是绝对不需要的。
我想知道的是如何告诉AutoMapper
不要完全映射对象图。我的意思是仅将PatientDto
映射到Patient
而不是PatientDto
和OfficeBranchDto
。我目前使用的解决方法是手动为每个映射添加Ignore,如:
Mapper.CreateMap<PatientDto, Patient>().ForMember(m => m.OriginalOfficeBranch, i => i.Ignore());
但我想有更好的解决方案。
答案 0 :(得分:1)
忽略您不想要映射的成员是通过Ignore()完成的。没有更好的解决方案 - AutoMapper如何猜测您想要映射的内容并且不想映射?它不能,所以你必须明确。