在DropDownList中使用外键

时间:2013-01-04 21:41:02

标签: c# asp.net-mvc

虽然我在其他编程语言方面有经验,但我是.NET / MVC的新手,所以我开始彻底关注Rick Anderson的THIS TUTORIAL,并成功创建了我项目所需的所有控制器和视图工作。

下一步是将表与外键相关联,我按照以下步骤进行了操作:

public class Patient
{
    public int id { get; set; }
    public string name { get; set; }
    public string phoneNumber { get; set; }
    public string address { get; set; }
    public string postCode { get; set; }
    public string emailAddress { get; set; }
    public virtual Doctor doctor { get; set; }
}

属性“doctor”将表“Patient”与表“Doctor”相关联。到目前为止,一切都很好。

现在,我需要更改Entity Framework已经为我创建的Create视图,这样我就可以在下拉列表中看到所有可用的医生并进行选择。

我已经阅读了几十个论坛帖子并尝试了很多解决方案,但没有让它发挥作用。我可以显示下拉列表,我可以用所有可用的医生填充它,但由于某种原因它不会验证。

这就是我将有关医生的信息传递给创建患者视图的方法:

        var doctorsQuery = from doc in db.Doctors
                           orderby doc.name, doc.id
                           select new { doc.id, doc.name };

        var doctorsList = new List<KeyValuePair<int, string>>();

        foreach (var item in doctorsQuery) {
            doctorsList.Add(new KeyValuePair<int, string>(item.id, item.name));
        }

        ViewBag.doctorsList = doctorsList;

它不起作用。

有人可以指出我正确的方向吗?这里最好的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

使用

public virtual int DocID {get;组;而不是

公共虚拟博士医生{得到;组; }