Automapper list to int(count)

时间:2011-10-12 14:01:49

标签: asp.net-mvc ajax automapper

我正在我的MVC应用程序中创建ViewModel。我们使用域模型的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; }
}

1 个答案:

答案 0 :(得分:8)

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()))