C# 发现了自动映射未映射的成员-即使在我映射这些成员之后
我已经浏览了网络,我不明白为什么在Automapper 6.2.1中会出现这些问题。我看了很多,什么也没想到 我得到这个错误: 找到了未映射的成员。查看下面的类型和成员。C# 发现了自动映射未映射的成员-即使在我映射这些成员之后,c#,automapper,C#,Automapper,我已经浏览了网络,我不明白为什么在Automapper 6.2.1中会出现这些问题。我看了很多,什么也没想到 我得到这个错误: 找到了未映射的成员。查看下面的类型和成员。 未映射属性: 标题 字幕 产品类型 语言 描述 但是,我已经为这些属性创建了映射。我不知道我为什么会有这个问题 我创建了一个AutoMapperConfig类,其设置如下: public class AutoMapperConfig { public static void Initialize()
未映射属性:
标题
字幕
产品类型
语言
描述 但是,我已经为这些属性创建了映射。我不知道我为什么会有这个问题 我创建了一个
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….
那样调用它-我已经为此挠头好几个小时了。吸取教训!很高兴能帮上忙。