【发布时间】:2015-12-08 17:22:36
【问题描述】:
我有三个业务对象:
public abstract class PayCaddyEntity : IPayCaddyEntity
{
protected PayCaddyEntity()
{
if (IsPopulated && string.IsNullOrWhiteSpace(Id))
{
Id = Guid.NewGuid().ToString();
}
}
...
}
PayCaddyEntity 基本上只是提供了一个通用的Id 属性并充当我可以在通用约束中使用的“标记”。
public abstract class PayCaddyMessage : PayCaddyEntity
{
public string Subject { get; set; }
public ApplicationUser Sender { get; set; }
public ApplicationUser Receiver { get; set; }
public DateTime? TimeSent { get; set; }
public DateTime? TimeReceived { get; set; }
}
public class BetPaymentOffer: PayCaddyMessage
{
public string Description { get; set; }
public int Amount { get; set; }
public bool PaymentAccepted { get; set; }
}
我已尝试将它们映射到通用视图模型,如下所示:
Mapper.CreateMap<PayCaddyMessage, BetPaymentOfferViewModel>()
.Include<BetPaymentOffer, BetPaymentOfferViewModel>();
Mapper.CreateMap<BetPaymentOffer, BetPaymentOfferViewModel>();
和
var offer = new BetPaymentOffer { Sender = GetCurrentUser() };
var model = Mapper.Map<BetPaymentOfferViewModel>(offer);
派生类上设置的基类属性未映射。在model 中,Sender 为空。我做错了什么?
【问题讨论】:
标签: .net asp.net-mvc mapping automapper