无法将 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);`
}
这里的错误非常明显。 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
}