我在 .NET CORE 2.2 项目中使用 AutoMapper。我得到这个异常:缺少类型映射配置或映射不受支持。映射类型:SaveFridgeTypeModel -> FridgeType College.Refrigirator.Application.SaveFridgeTypeModel -> College.Refrigirator.Domain.FridgeType在这一行:var fridgeType = _mapper.Map<SaveFridgeTypeModel, FridgeType>(model);这是 FridgeType 类的定义:public class FridgeType : IEntity , IType{ public FridgeType() { Fridges = new HashSet<Fridge>(); } public int ID { get; set; } //Description input should be restricted public string Description { get; set; } public string Text { get; set; } public ICollection<Fridge> Fridges { get; private set; }}这是 SaveFridgeTypeModel 类的定义:public class SaveFridgeTypeModel{ public string Description { get; set; } public string Text { get; set; }}我添加这一行: services.AddAutoMapper(typeof(Startup));Startup类中的ConfigureServices函数。更新我忘记在帖子中添加映射配置。这是映射配置类:public class ViewModelToEntityProfile : Profile{ public ViewModelToEntityProfile() { CreateMap<SaveFridgeTypeModel, FridgeType>(); }}知道为什么我会得到上面的异常吗?
2 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
在使用 DI 注册自动映射器时,您需要使用映射所在程序集中的类型。
AddAutomapper(typeof(ViewModelToEntityProfile));
如果您有多个带有地图的程序集 - 您可以使用另一个重载:
AddAutomapper(typeof(ViewModelToEntityProfile), typeof(SomeOtherTypeInOtherAssembly));
萧十郎
TA贡献1815条经验 获得超13个赞
Startup.cs创建映射配置类后,您需要在如下所示中添加 AutoMapperConfiguration :
public void ConfigureServices(IServiceCollection services) {
// .... Ignore code before this
// Auto Mapper Configurations
var mappingConfig = new MapperConfiguration(mc =>
{
mc.AddProfile(new ViewModelToEntityProfile());
});
IMapper mapper = mappingConfig.CreateMapper();
services.AddSingleton(mapper);
services.AddMvc();
}
- 2 回答
- 0 关注
- 107 浏览
添加回答
举报
0/150
提交
取消