You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core Web API使用EF映射DTO丢失一对一关联对象求助

问题原因及解决方案

导致映射后关联对象为null的核心是AutoMapper的映射规则不匹配,按以下步骤修复即可:

  1. 修正DTO导航属性命名
    AutoMapper默认按属性名严格匹配映射关系,你当前定义的UserAccountDto中两个关联属性命名和实体不匹配:
  • 实体导航属性为UserAccountType,DTO中写为UserAccountTypes(多了后缀s)
  • 实体导航属性为Truck,DTO中写为Trucks(多了后缀s)
    修正后的DTO关联属性定义如下:
// Linked Objects
public virtual GenderDto Gender { get; set; }
public virtual UserAccountTypeDto UserAccountType { get; set; }
public virtual TruckDto Truck { get; set; }

同时建议将DTO中的TruckId改为int?类型,和实体的可空属性保持一致,避免空值映射异常:

public int? TruckId { get; set; }
  1. 补全AutoMapper嵌套类型映射配置
    所有参与映射的类型都需要在AutoMapper的Profile中显式注册映射规则,除了UserAccount到UserAccountDto的映射外,还需要补充三个关联类型的映射:
// 在你的AutoMapper Profile类的构造方法中添加以下配置
CreateMap<Gender, GenderDto>();
CreateMap<UserAccountType, UserAccountTypeDto>();
CreateMap<Truck, TruckDto>();

完成以上两步修改后重新运行项目,即可正常映射关联对象。

内容的提问来源于stack exchange,提问作者Paintbox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:39:04