保持這個基本我有兩種模式。客戶和CustomerViewModel。我想映射一個到另一個之間的屬性。地圖IEnumerable模型查看
public class Customer
{
public string CompanyName { get; set; }
public int CustomerType { get; set; }
public IEnumerable<ContactViewModel> CustomerContacts { get; set; }
}
public class CustomerViewModel
{
public string CompanyName { get; set; }
public int CustomerType { get; set; }
public ContactName {get;set;}
public ContactTel {get;set;}
}
問題是我想將customerContact映射到contactName和contactTel。我知道它是一個IEnumerable幷包含聯繫人列表,但在此過濾器中,IEnumerable的聯繫人視圖模型將只包含1條記錄。
我該如何在automapper中做這種類型的映射?
UPDATE:
我決定去與前面提到的類似approuch人。我希望能在automapper中做到這一點,但我想它稍微複雜一些。
public static CustomerListViewModel MapToListView(this CustomerServiceModel svcModel)
{
ContactServiceModel contact = new ContactServiceModel { Name = String.Empty, Telephone = String.Empty };
if(svcModel.CustomerContacts != null) contact = svcModel.CustomerContacts.FirstOrDefault();
return new CustomerListViewModel
{
Id = svcModel.Id,
address = svcModel.Address.MapToView(),
CompanyName = svcModel.CompanyName,
ContactName = contact.Name,
ContactTelephone = contact.Telephone
};
}
你想在映射期間過濾,還是您知道它在映射之前只有一條記錄? – Maess
我知道它只會保存一個記錄。 –
@JamesAndrewSmith,Linq似乎是要走的路,您是否必須使用automapper? – Yohannes