我有一个数据库实体,用于存储订单地址,如下所示...
和另一个类似的课程...
我想根据AddressType列将EF实体映射到上述类。有人可以解释一下如何做吗?
更新:
如果addressType为“Delivery”,则要映射到OR.DeliveryAddress,如果addressType为“Invoice”,则要映射到OR.InvoiceAddress。
到目前为止,我已经能够做到这一点,但我不知道如何在实体映射级别应用条件...
更新2:
与@Yuliam讨论后,这是我为我的问题想出来的Fiddle。
public class DeliveryAddress
{
public string Id { get; set; }
public string PersonyName { get; set; }
public string CompanyName { get; set; }
public List<string> AddressLines { get; set; }
public string Zip { get; set; }
public string City { get; set; }
public string CountryCode { get; set; }
}
和另一个类似的课程...
public class InvoiceAddress
{
public string Id { get; set; }
public string PersonyName { get; set; }
public string CompanyName { get; set; }
public List<string> AddressLines { get; set; }
public string Zip { get; set; }
public string City { get; set; }
public string CountryCode { get; set; }
}
我想根据AddressType列将EF实体映射到上述类。有人可以解释一下如何做吗?
更新:
如果addressType为“Delivery”,则要映射到OR.DeliveryAddress,如果addressType为“Invoice”,则要映射到OR.InvoiceAddress。
到目前为止,我已经能够做到这一点,但我不知道如何在实体映射级别应用条件...
Mapper.CreateMap<OrderAddress, OR.DeliveryAddress>()
.ForMember(d => d.City, o => o.MapFrom(s => s.city))
.ForMember(d => d.CompanyName, o => o.UseValue(string.Empty))
.ForMember(d => d.CountryCode, o => o.MapFrom(s => s.countryCode))
.ForMember(d => d.Id, o => o.MapFrom(s => s.id))
.ForMember(d => d.PersonyName, o => o.MapFrom(s => s.name))
.ForMember(d => d.Zip, o => o.MapFrom(s => s.zip));
更新2:
与@Yuliam讨论后,这是我为我的问题想出来的Fiddle。
OR.DeliveryAddress
,如果地址类型为“Invoice”,您是否想要映射到OR.InvoiceAddress
? - Yuliam Chandra