'Get' 使用自动映射器时的逻辑

'Get' logic when using automapper

这是我的实体:

public class CouponEntity
{
    public int CouponId { get; set; }
    public int CompanyNumber { get; set; }
    public string Name { get; set; }
    public string FileName { get; set; }

    public string CompanySlug
    {
        get
        {
            return COMMONCONSTANTS.URL_COMPANY + "/" + this.CompanyNumber;
        }
    }
}

下面是我的 DTO:

public class CouponDto
{    
    [DataMember]
    public string CompanySlug { get; set; }
    [DataMember]
    public string FileName { get; set; }
    [DataMember]
    public string Name { get; set; }
}

我的问题是:使用 Mapper.Map<IEnumerable<CouponEntity>, IEnumerable<CouponDto>>(lstProducts) 对性能有很大影响吗?

我从互联网某处的 AutoMapper 创建者那里得到以下信息:

DTO is a strict projection of the data model. No business logic in mapping 99% "Auto" - restrict customization to minimum Prefer LINQ projection

那么,这是应该避免的吗?有没有更好的方法来完成这个?

在这种情况下,使用 AutoMapper 不太可能对性能产生显着影响。 创建地图,Mapper.CreateMap(),确实往往会对性能产生影响,因此请确保您只在应用程序启动时调用一次 CreateMap()。