使用 swagger gen 中的中介器 cqrs 模式时,IEnumerable 列表在请求命令中显示为空

问题描述 投票:0回答:1

我必须将简历信息发布到 Db 为此,我创建了一个实体简历:

 public class CirculumVitae
{
    public Guid UserId { get;set; }
    public IEnumerable<Skills> Skills { get; set; }
    [NotMapped]
    public  List<Langages> Langages { get; set; }
    public string Resume { get; set; }
    public IEnumerable<Experience> Experiences { get; set; }
    public IEnumerable<Education> Educations { get; set; }
    public IEnumerable<Projects> Projects { get; set; }
    public  UserInfo UserInfos { get; set; }
}

我使用 Mediator CQRS 模式和 asp.net core Api ,所以我创建了一个用于发布数据的命令

 public class CreateCVCommand : CreateCommand
{
    public Guid UserId { get; set; }
    public IEnumerable<SkillsDto> Skills { get; set; }

    [NotMapped]
    public virtual List<Langages> Langages { get; set; }
    public string Resume { get; set; }

    public IEnumerable<ExperienceDto> Experiences { get; set; }

    public IEnumerable<EducationDto> Educations { get; set; }

    public IEnumerable<ProjectsDto> Projects { get; set; }
    public UserInfoDto UserInfos { get; set; }

}

我在控制器中的端点,用于从 swagger 获取数据

尝试从 Swagger 发布数据后,所有可枚举数组都是空的

我用列表替换了枚举,但同样的问题 请帮助我

c# asp.net-core asp.net-web-api cqrs mediator
1个回答
0
投票

您提到您正在使用 mediator cqrs 模式,我认为您没有为此使用 MediatR 库,建议使用它。

您可以找到链接这里

代替 IEnumerable 使用列表(如您的情况所示,语言计数可用)。 IEnumerable 甚至不保存列表中项目的计数,相反,您必须迭代元素才能获取项目的计数。

您的命令类将类似于以下内容:

using MediatR;
namespace Test
{
    public class CreateCVCommand : IRequest<CvDto>
    {
        public Guid UserId { get; set; }
        
        public List<SkillsDto> Skills { get; set; }

        [NotMapped]
        public List<Langages> Langages { get; set; }
        
        public string Resume { get; set; }

        public List<ExperienceDto> Experiences { get; set; }

        public List<EducationDto> Educations { get; set; }

        public List<ProjectsDto> Projects { get; set; }
        
        public UserInfoDto UserInfos { get; set; }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.