自动映射器映射了错误的属性名称,或者我做错了

时间:2020-03-14 22:48:59

标签: asp.net-core entity-framework-core mapping automapper

我正在尝试将我的域实体映射到DTO。我在生成的查询中得到的是错误连接的属性名。

这是我的实体类:(为简洁起见,删除了一些代码)

public class Product : BaseEntity
{
    public int ProductId { get; set; }
    public string Name { get; set; }

    public virtual EntityUnit EntityUnit { get; set; }
}

这是我的DTO

public class ProductDto : IMapFrom<Product>
{
    public int Id { get; set; }
    public string Unit { get; set; }

    public void Mapping(Profile profile)
    {
        profile.CreateMap<Product, ProductDto>()
            .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.EntityUnit.Name));
    }
}

这是我的EntityUnit类:

public class EntityUnit : BaseEntity
{
    public int UnitId { get; set; }
    public string Name { get; set; }
}

毕竟这是生成的查询:(在微型分析器上)

enter image description here

实际上,必须为p.UnitId而不是EntityUnitUnitId(有效)。 Automapper的版本是9.0

我在这里做错了什么?

0 个答案:

没有答案