我有以下ViewModel:
public class MessageViewModel
{
public string Text { get; set; }
public int ContactID { get; set; }
}
public class Message
{
public string Text { get; set; }
[ForeignKey("Contact")]
public int ContactID { get; set; }
public Contact Contact { get; set; }
}
public class Contact
{
public int ID { get; set; }
public string Name { get; set; }
}
我使用ValueInjecter进行映射:
MessageViewModel = new MessageViewModel{ ContactID = 42 };
Message msg = new Message();
msg.InjectFrom<UnflatLoopValueInjection>(viewModel);
但ValueInjecter设置了msg.ContactID和msg.Contact.ID。我怎么能避免它?
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您只想映射到model.Text和model.ContactID,请执行以下操作:
msg.InjectFrom(viewModel);
正在填充Contact.ID,因为你正在使用Unflattening,因此从source.ContactID开始,它将转向target.Contact.ID
要避免这种情况(忽略某些属性),请查看https://stackoverflow.com/a/27444756/112100