![](/img/trans.png)
[英]Automapper If source is null, set destination object properties
[英]AutoMapper overrides source properties
我有以下代碼來更新Student
實體:
using static AutoMapper.Mapper;
...
public void Update(StudentInputDto dto)
{
Student student = _studentRepository.GetStudent();
student = Map<Student>(dto); //student.studentnumer is null here :(
_studentRepository.Update(student);
}
我的學生實體:
public class Student
{
public Guid studentid { get; set; }
public string firstname { get; set; }
public string lastname { get; set; }
public int age { get; set; }
public Guid genderid { get; set; }
public string studentnumber { get; set; }
}
我的StudentInputDto:
public class StudentInputDto
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public Guid GenderId { get; set; }
}
問題是映射后Student.studentnumber為null。
我想以映射后保留Student.studentnumber的方式配置AutoMapper。 怎么做 ? 任何幫助將不勝感激。
我最初的想法是通過以下方式配置AutoMapper:
Mapper.Initialize(cfg => {
cfg.CreateMap<StudentInputDto, Student>()
.ForMember(dest => dest.studentnumber, opt => opt.Ignore());
});
但是這種配置並不能解決問題。
看一下Automapper的方法描述。
TDestination Map<TDestination>(object source);
執行從源對象到新目標對象的映射。 從源對象推斷出源類型。
student = Map<Student>(dto)
將創建一個新的Student
對象並分配給student
變量
要映射兩個現有對象,請使用Mapper.Map(dto, student);
代替
TDestination Map<TSource, TDestination>(TSource source, TDestination destination)
執行從源對象到現有目標對象的映射。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.