簡體   English   中英

C#MVC3 Automapper類別包含清單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM