C# 发现了自动映射未映射的成员-即使在我映射这些成员之后

C# 发现了自动映射未映射的成员-即使在我映射这些成员之后,c#,automapper,C#,Automapper,我已经浏览了网络,我不明白为什么在Automapper 6.2.1中会出现这些问题。我看了很多,什么也没想到 我得到这个错误: 找到了未映射的成员。查看下面的类型和成员。 未映射属性: 标题 字幕 产品类型 语言 描述 但是,我已经为这些属性创建了映射。我不知道我为什么会有这个问题 我创建了一个AutoMapperConfig类,其设置如下: public class AutoMapperConfig { public static void Initialize()

我已经浏览了网络,我不明白为什么在Automapper 6.2.1中会出现这些问题。我看了很多,什么也没想到

我得到这个错误:

找到了未映射的成员。查看下面的类型和成员。

未映射属性:
标题
字幕
产品类型
语言
描述

但是,我已经为这些属性创建了映射。我不知道我为什么会有这个问题

我创建了一个
AutoMapperConfig
类,其设置如下:

public class AutoMapperConfig
    {
        public static void Initialize()
        {
            Mapper.Initialize(cfg =>
            {
                cfg.CreateMap<Shop, SearchViewModel>()
                    .ForMember(x => x.Title, opts => opts.MapFrom(x => x.TITLE))
                    .ForMember(x => x.Subtitle, opts => opts.MapFrom(x => x.SUB_TITLE))
                    .ForMember(x => x.ProductType, opts => opts.MapFrom(x => x.PRODUCT_TYPE))
                    .ForMember(x => x.Language, opts => opts.MapFrom(x => x.PRODUCT_LANGUAGE))
                    .ForMember(x => x.Description, opts => opts.MapFrom(x => x.BRIEF_DESC));  
            });
        }
var searchResults = Mapper.Map<List<Shop>, SearchViewModel>(shopList);
    EntityMap.EntityMapper.Map<List<Shop>, SearchViewModel>(shopList);
我试图在我的控制器中这样使用它:

public class AutoMapperConfig
    {
        public static void Initialize()
        {
            Mapper.Initialize(cfg =>
            {
                cfg.CreateMap<Shop, SearchViewModel>()
                    .ForMember(x => x.Title, opts => opts.MapFrom(x => x.TITLE))
                    .ForMember(x => x.Subtitle, opts => opts.MapFrom(x => x.SUB_TITLE))
                    .ForMember(x => x.ProductType, opts => opts.MapFrom(x => x.PRODUCT_TYPE))
                    .ForMember(x => x.Language, opts => opts.MapFrom(x => x.PRODUCT_LANGUAGE))
                    .ForMember(x => x.Description, opts => opts.MapFrom(x => x.BRIEF_DESC));  
            });
        }
var searchResults = Mapper.Map<List<Shop>, SearchViewModel>(shopList);
    EntityMap.EntityMapper.Map<List<Shop>, SearchViewModel>(shopList);
var searchResults=Mapper.Map(购物清单);

在我点击那条线之后,它抛出了那个异常。我不知道为什么,因为我已经为所有这些属性创建了映射。

这就是我在我的一个项目(根据您的示例定制)中设置
自动映射的方式。我在同一个类中使用静态类和静态
IMapper
属性

    public static class AutoMapperConfig
    {
        public static IMapper EntityMapper { get; set; }

        static EntityMap()
        {
            EntityMapper = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap<Shop, SearchViewModel>()
                    .ForMember(x => x.Title, opts => opts.MapFrom(x => x.TITLE))
                    .ForMember(x => x.Subtitle, opts => opts.MapFrom(x => x.SUB_TITLE))
                    .ForMember(x => x.ProductType, opts => opts.MapFrom(x => x.PRODUCT_TYPE))
                    .ForMember(x => x.Language, opts => opts.MapFrom(x => x.PRODUCT_LANGUAGE))
                    .ForMember(x => x.Description, opts => opts.MapFrom(x => x.BRIEF_DESC));
            });
        }
    }
公共静态类AutoMapperConfig
{
公共静态IMapper EntityMapper{get;set;}
静态EntityMap()
{
EntityMapper=新的MapperConfiguration(cfg=>
{
cfg.CreateMap()
.ForMember(x=>x.Title,opts=>opts.MapFrom(x=>x.Title))
.ForMember(x=>x.Subtitle,opts=>opts.MapFrom(x=>x.SUB_TITLE))
.ForMember(x=>x.ProductType,opts=>opts.MapFrom(x=>x.PRODUCT\u TYPE))
.ForMember(x=>x.Language,opts=>opts.MapFrom(x=>x.PRODUCT\u语言))
.ForMember(x=>x.Description,opts=>opts.MapFrom(x=>x.BRIEF_DESC));
});
}
}
你可以这样称呼它:

public class AutoMapperConfig
    {
        public static void Initialize()
        {
            Mapper.Initialize(cfg =>
            {
                cfg.CreateMap<Shop, SearchViewModel>()
                    .ForMember(x => x.Title, opts => opts.MapFrom(x => x.TITLE))
                    .ForMember(x => x.Subtitle, opts => opts.MapFrom(x => x.SUB_TITLE))
                    .ForMember(x => x.ProductType, opts => opts.MapFrom(x => x.PRODUCT_TYPE))
                    .ForMember(x => x.Language, opts => opts.MapFrom(x => x.PRODUCT_LANGUAGE))
                    .ForMember(x => x.Description, opts => opts.MapFrom(x => x.BRIEF_DESC));  
            });
        }
var searchResults = Mapper.Map<List<Shop>, SearchViewModel>(shopList);
    EntityMap.EntityMapper.Map<List<Shop>, SearchViewModel>(shopList);
EntityMap.EntityMapper.Map(商店列表);

搜索结果的数据类型错误

为了避免将来出现这种错误,请使用显式数据类型声明变量。以下内容永远不会被编译:

List<SearchViewModel> searchResults = Mapper.Map<List<Shop>, SearchViewModel>(shopList);    
List searchResults=Mapper.Map(shopList);
请尝试以下方法:

List<SearchViewModel> searchResults = Mapper.Map<List<Shop>, List<SearchViewModel>>(shopList);
List searchResults=Mapper.Map(shopList);

尝试创建一个静态类
public static class AutoMapperConfig
和静态方法
public static EntityMap
而不是
Initialize
,并像
EntityMap.EntityMapper.Map….
那样调用它-我已经为此挠头好几个小时了。吸取教训!很高兴能帮上忙。