0

嗨,我有两个用于技术人员和专业的模型类我通过创建专业外键列与表建立关系当我将此模型映射到 SqlReader 以进行插入函数时,我想使用该外键列创建 Dropdownlist 我有错误,例如不能隐式将 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; }
}

Db类代码

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);`
}
4

1 回答 1

1

错误在这里很清楚。cannot implicitly convert int to model.profession编译器说它不知道如何Int32Profession.

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

在上面的行中,您尝试将intvalue 设置为Profession.

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

像这样的东西

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

private Profession FindProfessionByProfessionId(int professionId)
{
    //find profession instance or create one and return here 
} 
于 2013-09-15T14:18:59.770 回答