'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()。
这是我的实体:
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()。