我有以下代码来更新<EntityType Name="SsprRegistrationActivityEvent">
<Key>
<PropertyRef Name="id" />
</Key>
<Property Name="eventTime" Type="Edm.DateTimeOffset" Nullable="false" />
<Property Name="role" Type="Edm.String" />
<Property Name="registrationActivity" Type="Edm.String" />
<Property Name="id" Type="Edm.String" Nullable="false" />
<Property Name="displayName" Type="Edm.String" />
<Property Name="userName" Type="Edm.String" />
</EntityType>
实体:
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);
}
我的StudentInputDto:
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; }
}
问题是映射后Student.studentnumber为null。
我想以映射后保留Student.studentnumber的方式配置AutoMapper。怎么做 ?任何帮助将不胜感激。
我最初的想法是以下列方式配置AutoMapper:
public class StudentInputDto
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public Guid GenderId { get; set; }
}
但是那个配置并没有解决问题。
答案 0 :(得分:1)
查看 Automapper 的方法说明。
----------|-----
xxxxx
----------|-----
xxxxx
执行从源对象到新目标对象的映射。源类型是从源对象推断出来的。
TDestination Map<TDestination>(object source);
会创建一个新的student = Map<Student>(dto)
对象并分配给Student
变量
要映射两个现有对象,请使用student
代替
Mapper.Map(dto, student);
执行从源对象到现有目标的映射 对象