我有以下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,我怎么避免呢?
发布于 2014-10-19 02:06:11
试一试
msg.InjectFrom<FlatLoopValueInjection>(viewModel);您得到的是预期的行为。
flattening,unflattening
发布于 2014-10-20 00:25:43
如果只想映射到model.Text和model.ContactID,请执行以下操作:
msg.InjectFrom(viewModel);填充Contact.ID是因为您使用了取消展平,所以它将从source.ContactID转到target.Contact.ID
要避免这种情况(忽略某些属性),可以查看这里的https://stackoverflow.com/a/27444756/112100
https://stackoverflow.com/questions/26442580
复制相似问题