来自其他应用程序的对象:
我可以得到它:像这样的一个对象:
public MessageSendTMP {get; set;}
包含示例:
public string title {get; set;}
public string Author {get; set;}
public string Date {get; set;}
.....10 more and
public List<Guid> IdPlayers {get; set;}
MessageDto 是一个简单的对象,具有 20 个属性,如数据、作者、姓名、标题等......以及消息所针对的 IDplayer。
在我的应用程序中,我必须将它保存在 message_table 的数据库中。我想使用自动映射器,我将在哪里使用 createMap 中的“ForMember”将 MessageSendTMP 映射到 MessageDto,但我不知道如何。我想在这样保存之前拥有它:List< MessageDto > dataToSave 有这么多记录作为 MessageSendTMP 中的大小 IdPlayers
示例:
MessageSendTMP {
title = "titleMessage",
Author = "John",
Date " "17-04-2021",
.....
IdPlayers = [2, 3, 10]
}
我会得到关于大小 2 的 MessageDto 列表:
[0] = { title = "titleMessage", Author = "John", Date " "17-04-2021", ....., IdPlayer = 2},
[1] = { title = "titleMessage", Author = "John", Date " "17-04-2021", ....., IdPlayer = 3},
[2] = { title = "titleMessage", Author = "John", Date " "17-04-2021", ....., IdPlayer = 10}
使用使用ITypeConverter
自定义映射:
public class Message
{
public string Title { get; set; }
public string Author { get; set; }
public string Date { get; set; }
public List<Guid> IdPlayers { get; set; }
}
public class MessageDto
{
public string Title { get; set; }
public string Author { get; set; }
public string Date { get; set; }
public Guid IdPlayer { get; set; }
}
public class MessageConverter : ITypeConverter<Message, IEnumerable<MessageDto>>
{
public IEnumerable<MessageDto> Convert(Message source, IEnumerable<MessageDto> destination, ResolutionContext context)
{
foreach (var playerId in source.IdPlayers)
{
var msg = context.Mapper.Map<MessageDto>(source);
msg.IdPlayer = playerId;
yield return msg;
}
}
}
然后:
public class Program
{
public static void Main(string[] args)
{
var config = new MapperConfiguration(options =>
{
options.CreateMap<Message, IEnumerable<MessageDto>>(MemberList.Source).ConvertUsing<MessageConverter>();
options.CreateMap<Message, MessageDto>();
});
var mapper = config.CreateMapper();
var message = new Message
{
Author = "auth",
Date = DateTime.Now.ToString(),
title = "title",
IdPlayers = new List<Guid> { Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid() }
};
var result = mapper.Map<Message, IEnumerable<MessageDto>>(message);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句