无法将 int 隐式转换为模型类型

本文关键字:转换 模型 类型 int | 更新日期: 2023-09-27 18:31:32

嗨,我

有两个技术人员和职业模型类,我通过装箱职业外键列与表建立了关系,当我将此模型映射到 SqlReader 以进行插入功能时,我想使用该外键列创建下拉列表我遇到了错误,例如无法隐式将 int 转换为 model.profession。

型号代码

public class Technician
{   
     [ScaffoldColumn (false)]
     public int Id { get; set; }
     [Required]
     [Display(Name = "Name")]
     public string Name { get; set; }

     [Required]
     public Profession Profession { get; set; }
}
public class Profession
{
    [Key]
    public int ProfessionId { get; set; }
    public string ProfessionType { get; set; }
}

分贝类代码

SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
    Technician technician = new Technician();
    technician.Id = Convert.ToInt32(dr["techId"]);
    technician.Name = dr["techName"].ToString();
    technician.Profession = Convert.ToInt32(dr["primeProfessionId"]);
    Jobtechnicians.Add(technician);`
}

无法将 int 隐式转换为模型类型

这里的错误非常明显。 cannot implicitly convert int to model.profession编译器说它不知道如何将Int32转换为Profession

technician.Profession = Convert.ToInt32(dr["primeProfessionId"]);

在上行中,您尝试将int值设置为 Profession

我假设Profession是一个类。所以你必须在那里设置Profession的实例。

像这样沉吟

technician.Profession = FindProfessionByProfessionId(Convert.ToInt32(dr["primeProfessionId"]));
private Profession FindProfessionByProfessionId(int professionId)
{
    //find profession instance or create one and return here 
}