微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将.Net Core 2.2和ASP.NET Boilerplate 4.5升级到.Net Core 3.1和ASP.NET Boilerplate 5.13时出现ObjectMapper错误

如何解决将.Net Core 2.2和ASP.NET Boilerplate 4.5升级到.Net Core 3.1和ASP.NET Boilerplate 5.13时出现ObjectMapper错误

ObjectMapper可在.Net Core 2.2和ASP.NET Boilerplate 4.5上运行->确定
但适用于.Net Core 3.1和ASP.NET Boilerplate 5.13->错误

还必须进行其他设置吗?

我的错误消息:

 "Missing type map configuration or unsupported mapping.\r\n\r\nMapping types:\r\nProd -> ProdDto\r\ncom.myproject.Core.Models.Prod -> com.myproject.Application.Prod.Dto.ProdDto"

我的AppService:

public override async Task<ProdDto> GetAsync(EntityDto<int> input)
{  
    try
    {
        var entity = await _prodManager.GetProdByIdAsync(input.Id);

        var result = ObjectMapper.Map<ProdDto>(entity);

        return result;
    }
    catch (Exception ex)
    {
        throw new UserFriendlyException(ex.Message);
    }
}

我的模块:

[DependsOn(
    typeof(AbpAutoMapperModule))]
public class ProdApplicationModule : AbpModule
{
    public override void PreInitialize()
    {
    }

    public override void Initialize()
    {
        var thisAssembly = typeof(ProdApplicationModule).GetAssembly();

        IocManager.RegisterassemblyByConvention(thisAssembly);

        Configuration.Modules.AbpAutoMapper().Configurators.Add(
            cfg => cfg.AddMaps(thisAssembly)
        );
    }
}

我的个人资料:

public class ProdMapProfile : Profile
{
    public ProdMapProfile()
    {
        CreateMap<Core.Models.Prod,ProdDto>();
    }
}

解决方法

如果您的实体和DTO类未与所有属性(或变量)进行映射,则您可以忽略某些属性(未映射的属性可能会导致缺少映射错误)。

library(themis)
library(recipes)
library(tune)
library(parsnip)
library(workflows)
library(dials)
library(rsample)

xg_mod <- parsnip::boost_tree(mode = "classification",trees = tune(),tree_depth = tune(),min_n = tune(),loss_reduction = tune(),learn_rate = tune()) %>%
    set_engine("xgboost")

xg_grid <- grid_latin_hypercube(over_ratio(range = c(0,1)),trees(),tree_depth(),min_n(),loss_reduction(),learn_rate(),size = 5)

my_recipe <- recipe(class ~ .,data = circle_example) %>%
    step_rose(class,over_ratio = tune())

workflow() %>%
    add_model(xg_mod) %>%
    add_recipe(my_recipe) %>%
    tune_grid(resamples = mc_cv(circle_example,strata = class),grid = xg_grid)
,

当我更新到net core 3.1时,我遇到了同样的问题,要解决该问题,您需要映射Get的结果,请参见您代码上的修改

public override async Task<ProdDto> GetAsync(EntityDto<int> input)
{  
    try
    {
        var entity = await _prodManager.GetProdByIdAsync(input.Id).Result;

        var result = ObjectMapper.Map<ProdDto>(entity);

        return result;
    }
    catch (Exception ex)
    {
        throw new UserFriendlyException(ex.Message);
    }
}

之所以会这样,是因为它试图映射异步响应,所以当您添加.result时,它会起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?