如何使用Automapper映射集合

本文关键字:集合 映射 Automapper 何使用 | 更新日期: 2023-09-27 18:10:51

我有以下类

 public class StateDto
    {
        public int Id { get; set; }
        public string StateName { get; set; }
        public string StateCode { get; set; }
    }
 public class CountryDto
    {
        public int Id { get; set; }
        public string CountryName { get; set; }
        public string CountryCode { get; set; }
        public List<StateDto> States { get; set; }
    }

public class Country : Entity, IValidatableObject
    {
        public Country()
        {
            States=new List<State>();
        }
        public string CountryName { get; set; }
        public string CountryCode { get; set; }
 // Few code related to IvalidatableObject removed
        public virtual ICollection<State> States { get; private set; }
        public void AddNewStatesInCountry(State state)
        {
            state.CountryId = Id;
            States.Add(state);
        }
       public bool IsDuplicateStateCodeExisits(string stateCode)
        {
            return States.Any(s => s.StateCode == stateCode);
        }
    }
public class State : Entity, IValidatableObject
    {
        public string StateName { get; set; }
        public string StateCode { get; set; }
        public int CountryId { get; set; }
      // Few code related to IvalidatableObject removed
    }

,我使用下面的代码

映射这两个类
 Mapper.CreateMap<State, StateDto>();
    Mapper.CreateMap<Country, CountryDto>();  // Mapping Country to CountryDto

但我得到这个错误,而执行我的代码

AutoMapper.AutoMapperMappingException : Missing type map configuration or unsupported mapping.
Mapping types:
Country -> CountryDto
Domain.ErpBase.CountryAgg.Country -> Application.ErpBase.Dto.CountryDto
Destination path:
CountryDto
Source value:
Domain.ErpBase.CountryAgg.Country
我的映射出了什么问题,如何解决这个问题? 类中的映射集合是否需要任何特殊设置?

注:我尝试了countryMap。记住(cm => cm)。州,mc => mc.MapFrom (co => co.States));

如何使用Automapper映射集合

我认为您只定义了一个从Country到CountryDto的映射。你可能也需要一个相反的

Automapper自动处理集合,所以您的映射定义很好。

但是,您应该在Country中为States提供一个公共设置器。

相关文章: