自动映射数组 class
Automapping an array class
我有一个目标对象为
ArrayOfStudents[]
包含
StudentId, AddressInfo, MarksInfo
源对象是
public class Details
{
public Student[] Student;
)
学生 class 包含
StudentId、AddressInfo、MarksInfo
我想映射 Student[]
和 ArrayOfStudents[]
我尝试了以下方法,但没有用
Map.CreateMap<Student,ArrayOfStudents>()
.ReverseMap();
Map.CreateMap<Details.Student,ArrayOfStudents>()
.ReverseMap();
我应该如何映射这个案例?
它抛出以下未映射的错误
StudentId、AddressInfo、MarksInfo
使用 Automapper,您可以将一种类型映射到另一种类型。当您这样做时,将自动映射相同类型的数组。
在您的例子中,您将在 ArrayOfStudents
和 Student
之间创建一个映射。这将是一个简单的映射,因为两种映射类型之间的类型和名称是相同的:
public class MappingProfile : Profile
{
public MappingProfile()
{
this.CreateMap<Student, ArrayOfStudents>();
this.CreateMap<ArrayOfStudents, Student>();
}
}
现在,无论您打算在哪里进行实际映射(例如 RESTful 控制器),您都可以执行以下操作:
public class MyController
{
private readonly IMapper mapper;
public MyController(IMapper mapper)
{
this.mapper = mapper;
}
// Then in any of your methods:
[HttpGet]
public IActionResult MyMethod()
{
var objectsToMap = details.Student; // This is an array of Student type.
var mappedObjects = this.mapper.Map(objectsToMap); // This will be an array of ArrayOfStudents.
// do what you will with the mapped objects.
}
}
想法是,您注册 types 的映射(包括类型中成员的类型)。然后这些类型的集合的映射由 Automapper 自动处理。
我有一个目标对象为
ArrayOfStudents[]
包含
StudentId, AddressInfo, MarksInfo
源对象是
public class Details
{
public Student[] Student;
)
学生 class 包含
StudentId、AddressInfo、MarksInfo
我想映射 Student[]
和 ArrayOfStudents[]
我尝试了以下方法,但没有用
Map.CreateMap<Student,ArrayOfStudents>()
.ReverseMap();
Map.CreateMap<Details.Student,ArrayOfStudents>()
.ReverseMap();
我应该如何映射这个案例?
它抛出以下未映射的错误
StudentId、AddressInfo、MarksInfo
使用 Automapper,您可以将一种类型映射到另一种类型。当您这样做时,将自动映射相同类型的数组。
在您的例子中,您将在 ArrayOfStudents
和 Student
之间创建一个映射。这将是一个简单的映射,因为两种映射类型之间的类型和名称是相同的:
public class MappingProfile : Profile
{
public MappingProfile()
{
this.CreateMap<Student, ArrayOfStudents>();
this.CreateMap<ArrayOfStudents, Student>();
}
}
现在,无论您打算在哪里进行实际映射(例如 RESTful 控制器),您都可以执行以下操作:
public class MyController
{
private readonly IMapper mapper;
public MyController(IMapper mapper)
{
this.mapper = mapper;
}
// Then in any of your methods:
[HttpGet]
public IActionResult MyMethod()
{
var objectsToMap = details.Student; // This is an array of Student type.
var mappedObjects = this.mapper.Map(objectsToMap); // This will be an array of ArrayOfStudents.
// do what you will with the mapped objects.
}
}
想法是,您注册 types 的映射(包括类型中成员的类型)。然后这些类型的集合的映射由 Automapper 自动处理。