AutoMapper-mappingmodels中子字段为不同对象有问题
创始人
2024-09-23 10:00:39
0

AutoMapper支持通过创建自定义解析器来解决关联对象映射中的问题。

示例: 假设有两个不同的模型,其中一个包含一个User对象,而另一个则包含User对象的Id。

public class UserDto
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class OrderDto
{
    public int Id { get; set; }
    public string Description { get; set; }
    public int UserId { get; set; }
}

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public List Orders { get; set; }
}

public class Order
{
    public int Id { get; set; }
    public string Description { get; set; }
    public User User { get; set; }
}

我们可以通过一个自定义解析器来解决这个问题:

class UserResolver : IValueResolver
{
    private readonly DbContext _db;

    public UserResolver(DbContext db)
    {
        _db = db;
    }

    public User Resolve(OrderDto source, Order destination, User destMember, ResolutionContext context)
    {
        return _db.Users.FirstOrDefault(u => u.Id == source.UserId);
    }
}

然后我们就可以使用这个自定义解析器解决这个问题:

Mapper.Initialize(cfg => cfg.CreateMap()
                                .ForMember(dest => dest.User, opt => opt.MapFrom()));

相关内容

热门资讯

9分钟实锤!德州之星辅助(云扑... 9分钟实锤!德州之星辅助(云扑克德州)本来有挂(详细辅助新2025教程);1、这是跨平台的德州之星辅...
七分钟实锤!德州ai机器人(n... 七分钟实锤!德州ai机器人(nzt德州)都是是有挂(详细辅助科技教程)德州ai机器人软件透明挂微扑克...
9分钟实锤!德扑之星猫腻(we... 9分钟实锤!德扑之星猫腻(wepower德州)确实存在有挂(详细辅助可靠教程)1、起透看视 德扑之星...
第3分钟实锤!智星德州菠萝(德... 第3分钟实锤!智星德州菠萝(德州扑克)都是有挂(详细辅助细节揭秘)智星德州菠萝软件透明挂微扑克wpk...
6分钟实锤!德州ai人工智能(... 6分钟实锤!德州ai人工智能(德州wepower)原来真的有挂(详细辅助专业教程)1、德州ai人工智...
九分钟实锤!德州ai辅助软件(... 九分钟实锤!德州ai辅助软件(wepower德州)确实有挂(详细辅助微扑克教程)1、上手简单,内置详...
八分钟实锤!德州AI智能辅助机... 八分钟实锤!德州AI智能辅助机器人(来玩德州app)确实是有挂(详细辅助安装教程)1、八分钟实锤!德...
一分钟实锤!德州之星插件(德州... 一分钟实锤!德州之星插件(德州扑克)本来有挂(详细辅助教你攻略);1、德州之星插件透视辅助简单,德州...
第8分钟实锤!德扑ai智能(手... 第8分钟实锤!德扑ai智能(手机德州)其实存在有挂(详细辅助必赢教程)1、打开软件启动之后找到中间准...
9分钟实锤!德州之星有外挂(德... 9分钟实锤!德州之星有外挂(德扑)真是真的是有挂(详细辅助攻略教程)1、任何德州之星有外挂ai辅助神...