使用AutoMapper将部分对象映射到目标对象

问题描述 投票:-1回答:1

我有这个模型课

  public class AppInfo
  {
    [Required(ErrorMessage = "Campo obrigatório")]
    public string nick { get; set; }
    [Required(ErrorMessage = "Campo obrigatório")]
    public string version { get; set; }
    public string description { get; set; }
    public bool invalidated { get; set; }
    public System.DateTime releasedAt { get; set; }
    public System.DateTime createdAt { get; set; }
    public System.DateTime updatedAt { get; set; }
  }

并且我有一个放置请求,可以选择接收上述模型的三个字段

  public class AppInfoPutModel
  {
    public string description { get; set; }
    public bool invalidated { get; set; }
    public System.DateTime releasedAt { get; set; }
  }

并且当我在正文请求中收到部分信息时,我需要映射这些新信息内部对象使用AutoMapper或类似的东西,我试图这样做

    AppInfo appInfo = await_getAppInfoByNickAndVersionBll.GetAppInfoByNickAndVersion(appNick, appVersion);

    new MapperConfiguration(cfg => cfg.CreateMap<AppInfoPutModel, AppInfo>());

    _mapper.ConfigurationProvider.CreateMapper();

    _mapper.Map(appInfoToUpdate, appInfo);

    await _putAppInfoBll.PutAppInfo(appInfo, appInfoToUpdate);

    return new OkObjectResult(appInfo);

并且此代码引发错误,因为AppInfoPutModel不具有AppInfo拥有的所有属性,并且无法映射所有字段,有没有办法只映射这3个字段并保留其他字段?

c# .net entity-framework object automapper
1个回答
0
投票

看来您忘记了传递映射的实际结果。这行:

© www.soinside.com 2019 - 2024. All rights reserved.