我正在构建一个具有以下结构的自动播放器:
域:
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时遇到了麻烦,因为我有一个带有单个字段的sigle字段和一个带有另一个列表的列表。有人可以帮助我......
另外,我可能会问这是否确实需要Automapper ....
[编辑]
工作代码:
Mapper.CreateMap<EnterpriseInfo, HomeLogonHomeViewModel>()
.ForMember(dest => dest.CompanyName, opt => opt.MapFrom(src => src.Name));
如果将其更改为同名,则无需将其显式添加到SysMsg。
答案 0 :(得分:1)
您需要将EnterpriseInfo映射到HomeLogonHomeViewModel。我建议将域中的Msg类命名为SysMsg,反之亦然。然后明确映射CompanyName成员和SysMsg成员。像这样......
Mapper.CreateMap<EnterpriseInfo,HomeLogonHomeViewModel>()
.ForMember(dest=>dest.CompanyName,opt=> opt.Name)
.ForMember(dest=>dest.SysMsg, opt=>opt.SysMsg);