2011-10-12 5 views
1

私はMVCアプリケーションでViewModelsを作成しています。我々はモデル変換のためにオートマッペをドメインモデルに使用しています。私の質問は、問題の原因となっているJavaScriptSerializerのように、MVCでajaxを実行するときに循環参照エラーが発生し続けるため、プロジェクトのリストを返す代わりに、カウントが必要です(ビューモデルが必要です)。ここに階層のサンプルがあります。アドバイスを事前にありがとう!手袋LLLLLLikeオートマッパーリストからint(count)

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; } 
} 

答えて

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

!どうも! :) – spaceagestereo

+5

プロパティを明示的にマップする必要はありません、automapperはプロパティ名を解釈し、Projects.Count()をProjectsCountに自動マップします – pomber