gpt4 book ai didi

c# - Automapper Map.CreateMap 没有自定义映射的问题

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:28 25 4
gpt4 key购买 nike

我正在尝试使用 AutoMapper 而不求助于自定义映射。

我有两个对象使用相同的接口(interface)定义如下

public class Order : IOrder
...

public class OrderViewModel : IOrder
...

我的 Global.asax,看起来像这样:

    protected void Application_Start()
{
Mapper.CreateMap<Order, OrderViewModel>();
Mapper.CreateMap<OrderViewModel, Order>();

Mapper.CreateMap<IOrder, OrderViewModel>();
Mapper.CreateMap<OrderViewModel, IOrder>();

Mapper.CreateMap<Order, IOrder>();
Mapper.CreateMap<IOrder, Order>();

Mapper.CreateMap<IOrder, IOrder>();

...
}

稍后,当我尝试使用这张 map 时,我得到了一个对象,但里面什么也没有。

OrderViewModel vm = new OrderViewModel();
vm.OrderName = "Test";

var dto = Mapper.Map<Order, OrderViewModel)(vm);

dto.OrderName = empty string!?!

更新:我实际上是这样使用 map 的……抱歉颠倒了参数。无论如何,还是不行。

var dto = Mapper.Map<OrderViewModel, Order)(vm);

最佳答案

Mapper.Map 的签名是

Mapper.Map<TSource, TDestination>

当您尝试从 OrderViewModel 在这里创建一个 Order 时, View 模型是源而 Order 是目的地,请尝试将通用参数交换为:

var dto = Mapper.Map<OrderViewModel, Order)(vm);

关于c# - Automapper Map.CreateMap 没有自定义映射的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7096014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com