Tôi đang gặp khó khăn để hiểu cách ánh xạ một số đối tượng nhất định. Vui lòng trả lời một số câu hỏi về ví dụ đơn giản này.Ví dụ về Automapper Đơn giản
Ví dụ mã
class User
{
private int id;
private string name;
}
class Group
{
private int id;
private string name;
private List<User> users;
}
[DataContract]
public class UserDto
{
[DataMember]
public int id { get; set; }
[DataMember]
public string name{ get; set; }
}
[DataContract]
public class GroupDto
{
[DataMember]
public int id { get; set; }
[DataMember]
public string name{ get; set; }
[DataMember]
public List<User> Users { get; set; }
}
Các mappers
Mapper.CreateMap<User, UserDto>();
Mapper.CreateMap<UserDto, User>();
Mapper.CreateMap<Group, GroupDto>();
Mapper.CreateMap<GroupDto, Group>();
Khi lập bản đồ Group
-GroupDto
, bạn có để lập bản đồ User
để UserDto
nội bộ vì List<User>
trong Group
bao gồm unmapped Users
? Nếu vậy, làm thế nào để bạn làm điều này? Đoán của tôi là
Mapper.CreateMap<Group, GroupDto>()
.ForMember(g => g.id, opt => opt.Ignore());
.ForMember(g => g.name, opt => opt.Ignore());
.ForMember(g => g.Users, opt => opt.MapFrom(u => Mapper.Map<Group, UserDto>(u)))
Điều này có đúng không?
Tại sao GroupDTO của bạn không chứa UserDTO? Nếu có, không cần cấu hình nào khác ngoài 'CreateMap' để AutoMapper hoạt động. – stuartd
Đây là bài viết đơn giản tôi đã viết trên Automapper sử dụng C# http://www.codeproject.com/Articles/986460/What-is-Automapper –
Đọc bài viết này: http://www.codearsenal.net/2012/12/ csharp-object-to-object-mapping-automapper.html –