我正在尝试为下一个案例编写映射配置。我有域对象:
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public string ImagePath { get; set; }
public virtual ICollection<Service> Services { get; set; }
public int? SubcategoryId { get; set; }
[ForeignKey("SubcategoryId")]
public virtual Category Subcategory { get; set; }
}
和Dto来映射:
public class CategoryDto
{
public int Id { get; set; }
public string Name { get; set; }
public string ImagePath { get; set; }
}
问题是,目标类的属性比源少。如果我使用简单的地图,我会得到一个例外。
Mapper.Initialize(n => n.CreateMap<Service, ServiceDto>());
我无法使用Ignore()
,因为它将应用于目标类,而不是源类。由于某种原因,方法ForSourceMember()
也没有帮助。我看过this问题,大多数情况都没问题,但属性Services
不是null
,而是Count = 0
,当它为空时。我也从右边读了一些类似的问题,但是他们没有帮助,也许他们在以前的版本中工作过。
希望有人能帮助我找到解决方案,或解释我错过的内容。
答案 0 :(得分:1)
Mapper.Initialize只能在您的应用初始化时调用一次,而不是按照您现在正在执行的请求调用。