次の構造を持つオートマッパーを構築しています。
ドメイン:
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
単一のフィールドを持つ単一フィールドと別のリストを持つリストがあるため、オートマッパーの構成に問題があります。誰か助けてくれませんか...
また、これが本当に Automapper を必要とするかどうかを尋ねるかもしれません....
[編集]
作業コード:
Mapper.CreateMap<EnterpriseInfo, HomeLogonHomeViewModel>()
.ForMember(dest => dest.CompanyName, opt => opt.MapFrom(src => src.Name));
同名に変更した場合、Msg を SysMsg に明示する必要はありません。