[英]Convert to DTO list property
我有以下DTO:
public class QuestionGroupDTO : IBaseDTO
{
public string Description { get; set; }
public string Header { get; set; }
public Guid Id { get; set; }
public int Order { get; set; }
public IEnumerable<Services.Forms.Models.RelationForm_QuestionGroupDTO> RelationForms_QuestionGroups { get; set; }
public IEnumerable<RelationQuestionGroup_QuestionDTO> RelationQuestionGroups_Questions { get; set; }
}
轉換時我對RelationQuestionGroups_Questions
有問題。
這是我的RelationQuestionGroup_QuestionDTO
樣子
public class RelationQuestionGroup_QuestionDTO
{
public int Order { get; set; }
[Required]
public Guid QuestionGroupId { get; set; }
[Required]
public Guid QuestionId { get; set; }
public virtual QuestionGroupDTO QuestionGroup { get; set; }
public virtual QuestionDTO Question { get; set; }
}
這是我的轉換方式:
public static QuestionGroupDTO ToDTO(this QuestionGroup src)
{
var dto = new QuestionGroupDTO
{
Id = src.Id,
Header = src.Header,
Description = src.Description,
RelationQuestionGroups_Questions = src.RelationQuestionGroups_Questions.ToList()
};
return dto;
}
如您所見,我正在嘗試僅分配它並列出它的列表,但是我在這里遇到了轉換錯誤。 我不確定該怎么做。
我收到以下錯誤:
無法將類型泛型列表隱式轉換為System.Collections.Generic.IEnumerble
您在映射方面有了一個良好的開端,但是在RelationQuestionGroups_Questions = src.RelationQuestionGroups_Questions.ToList()
,您正在嘗試將List<Entity>
分配給List<Dto>
。 你不能那樣做。
您還需要映射任何非基本屬性。 您可以這樣做:
public static QuestionGroupDTO ToDTO(this QuestionGroup src)
{
var dto = new QuestionGroupDTO
{
// ...
RelationQuestionGroups_Questions = src.RelationQuestionGroups_Questions
.Select(ToDTO)
.ToList()
};
return dto;
}
然后添加一個方法來將RelationQuestionGroups_Question
映射到RelationQuestionGroups_QuestionDTO
:
public RelationQuestionGroups_QuestionDTO ToDTO(RelationQuestionGroups_Question entity)
{
return new RelationQuestionGroups_QuestionDTO
{
Order = entity.Order,
// ...
};
}
然后,您將看一下AutoMapper來自動執行此操作。
您忘記了將RelationQuestionGroups_Questions映射到RelationQuestionGroup_QuestionDTO 。
public static QuestionGroupDTO ToDTO(this QuestionGroup src)
{
var dto = new QuestionGroupDTO
{
Id = src.Id,
Header = src.Header,
Description = src.Description,
RelationQuestionGroups_Questions = src.RelationQuestionGroups_Questions.Select(rq => new RelationQuestionGroup_QuestionDTO
{
Order = rq.Order,
QuestionGroupId = rq.QuestionGroupId,
QuestionId = rq.QuestionId
}).ToList()
};
return dto;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.