Automapper ProjectTo不映射多语言实体

ABP多语言映射未由AutoMapper ProjectTo调用。如果可行,它假定将翻译实体映射到DTO的name属性。它可以与我的旧代码一起使用,而无需使用ProjectTo。请参考下面的示例代码:

注意:我正在使用ABP版本4.8.1

注意:我已经在ProductDTO中包括了Translation DTO,以强制自动映射器的projectTo在生成IQueryable时急切地加载Translation数据。

ProductAppService.cs

public async Task<ICollection<ProductListDto>> Getall()
{
     return await repository.Getall().ProjectTo<ProductListDto>().ToListAsync();
}

Product.cs

public class Product : Entity,IMultiLingualEntity<ProductTranslation>
{
    public ICollection<ProductTranslation> Translations { get; set; }
}

ProductTranslation.cs

public class ProductTranslation : Entity,IEntityTranslation<Product>
{
    public string Name { get; set; }
}

ProductDto.cs

public class ProductListDto
{
    // Mapped from ProductTranslation.Name
    public string Name { get; set; }

    // Purposely include the translations dto here to force automapper to eagerly load the translation 
    // data from DB
    [JsonIgnore]
    public ICollection<ProductTranslationDto> Translations { get; set; }
}

Module.cs

public override void PreInitialize()
{
    Configuration.Modules.AbpAutoMapper().Configurators.Add(cfg =>
    {
        MultiLingualMapContext context = new MultiLingualMapContext(IocManager.Resolve<ISettingManager>());
        cfg.DisableConstructorMapping();
        cfg.AddCollectionmappers();

        CustomDtoMapper.CreateMappings(cfg);
    });
}

CustomDtoMapper.cs

cfg.CreateMultiLingualMap<Product,ProductTranslation,ProductListDto>(context);
spacerubbish 回答:Automapper ProjectTo不映射多语言实体

您可以检查那些链接,它似乎是基于github的旧问题

https://github.com/aspnetboilerplate/aspnetboilerplate/issues/3356

https://github.com/aspnetboilerplate/aspnetboilerplate/blob/e0ded5d8702f389aa1f5947d3446f16aec845287/test/Abp.ZeroCore.Tests/Zero/MultiLingual/MultiLingual_Entity_Tests.cs

https://github.com/aspnetboilerplate/aspnetboilerplate/blob/e0ded5d870/test/Abp.ZeroCore.SampleApp/Application/Shop/ProductAppService.cs#L48

这是一个关于StackOverFlow的问题。

Data localization in mapping in ASP.NET Zero

请让我知道其中一个是否适合您。

本文链接:https://www.f2er.com/2906996.html

大家都在问