Automapper list to int(count)

spa*_*reo 2 ajax asp.net-mvc automapper

我正在我的MVC应用程序中创建ViewModels.我们使用域模型的automapper来查看模型转换.我的问题是我在MVC中执行ajax时遇到循环引用错误(好像是导致问题的JavaScriptSerializer),所以不需要返回项目列表,我只需要计数(因为这是我所有的视图模型需求) ).以下是层次结构的示例.提前感谢任何建议!

public class ProjectViewModel
{
    public int ProjectID { get; set; }
    [Required]
    [UIHint("Project Name")]
    public string Name { get; set; }
    public ICollection<ProjectGroupViewModel> ProjectGroups { get; set; }
}

public class ProjectGroupViewModel
{
    public int ProjectGroupID { get; set; }

    [Required]
    public string Name { get; set; }
    //THIS is what I Want to have as int ProjectCount
    public ICollection<ProjectViewModel> Projects { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

ale*_*exl 9

public class ProjectGroupViewModel
{
    public int ProjectGroupID { get; set; }

    [Required]
    public string Name { get; set; }
    //THIS is what I Want to have as int ProjectCount
    public int ProjectsCount { get; set; }
}

AutoMapper.Mapper.CreateMap<ProjectGroup, ProjectGroupViewModel>()
    .ForMember(x => x.ProjectsCount, o => o.MapFrom(x => x.Projects.Count()))
Run Code Online (Sandbox Code Playgroud)

  • 您不需要显式映射属性,automapper解释属性名称并自动将Projects.Count()映射到ProjectsCount (5认同)