ネストされた子のキー(ID)をマッピングする優れた実装フォームを受け取りました(ここを参照:モデルをdtoにマッピングし、子要素のキーのみを「含める」)が、ここでは、以下で説明するように少し異なるソリューションを検索します。
私は次のプロジェクトモデルを持っています:
public class Project
{
[Key]
public int ProjectID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual ICollection<Screenshot> Screenshots { get; set; }
}
そして、私は次のスクリーンショットモデルを持っています:
public class Screenshot
{
[Key]
public int ScreenshotID { get; set; }
public string ScreenshotName { get; set; }
public byte[] ScreenshotContent { get; set; }
public string ScreenshotContentType { get; set; }
}
ご覧のとおり、各プロジェクトにはいくつかのスクリーンショットが添付されています。次の関数では、いくつかのプロジェクトと、対応するスクリーンショットのScreenshotID+ScreenshotNameのペアのみを取得したいと思います。
public SearchResultDTO<ProjectDTO> GetProjects(SearchParametersProjectDTO dto)
{
...
var resultDTO = new SearchResultDTO<ProjectDTO>
{
Entities = Mapper.Map<IEnumerable<Project>, IEnumerable<ProjectDTO>>(projects.ToList()),
TotalItems = projects.Count()
};
return resultDTO;
}
ProjectDTOは次のとおりです。
[DataContract]
public class ProjectDTO : BaseDTO<ProjectDTO, Project>
{
[DataMember]
public int ProjectID { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public Dictionary<int, string> Screenshots { get; set; }
そのため、「ScreenshotID+ScreenshotName」をDTOのScreenshotsプロパティにマップする方法がわかりません。
どんな助けでも大歓迎です。
ありがとう。