[英]C# MVC3 Automapper class containing list
我正在構建具有以下結構的自動映射器:
域:
public class EnterpriseInfo
{
public string Name { get; set; }
public string Description { get; set; }
public bool Installed { get; set; }
public bool Enabled { get; set; }
public List<Msg> MsgList { get; set; }
...some methods...
}
public class Msg
{
public DateTime DateTime { get; set; }
public string From { get; set; }
public string Message { get; set; }
}
ViewModel類:
public class HomeLogonHomeViewModel
{
public string CompanyName;
public List<SysMsg> MsgList;
}
public class SysMsg
{
public DateTime DateTime { get; set; }
public string From { get; set; }
public string Message { get; set; }
}
在視圖中,我需要顯示以下內容:
Messages for company: BALBALBALBA
12/12/12 00:00 From: AAA Message: Nnonononon
12/12/12 00:00 From: AAA Message: Nnonononon
12/12/12 00:00 From: AAA Message: Nnonononon
12/12/12 00:00 From: AAA Message: Nnonononon
12/12/12 00:00 From: AAA Message: Nnonononon
12/12/12 00:00 From: AAA Message: Nnonononon
我在配置自動映射器時遇到了麻煩,因為我有一個包含單個字段的sigle字段和一個包含另一個列表的列表。 有人可以幫幫我嗎...
另外,我可能會問這是否確實需要Automapper。
[編輯]
工作代碼:
Mapper.CreateMap<EnterpriseInfo, HomeLogonHomeViewModel>()
.ForMember(dest => dest.CompanyName, opt => opt.MapFrom(src => src.Name));
如果已將SysMsg更改為相同的名稱,則無需向SysMsg顯式顯示Msg。
您需要將EnterpriseInfo映射到HomeLogonHomeViewModel。 我建議將域中的Msg類命名為SysMsg,反之亦然。 然后顯式映射CompanyName成員和SysMsg成員。 像這樣
Mapper.CreateMap<EnterpriseInfo,HomeLogonHomeViewModel>()
.ForMember(dest=>dest.CompanyName,opt=> opt.Name)
.ForMember(dest=>dest.SysMsg, opt=>opt.SysMsg);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.