根据传递给组合框的名称从数据库加载数据

时间:2018-10-10 13:22:46

标签: c# .net winforms entity-framework

请,我已经在这个挑战上停留了几个小时。不知道我在哪里弄错了。

我有两个实体; service_catalog和服务。我在服务上有一个外键,其中引用了service_catalog。因此,想法是,service_catalog具有许多服务。

我试图根据从组合框传递的service_catalog名称获取所有服务的列表。但是我在serviceList变量上得到了一个空豁免。但是,当我使用消息框进行测试时,它给了我可以使用的ID。但是我得到了错误。

这是我的代码。将不胜感激。

//Get catalog name
private service_catalog GetName(string sCatalogname)
{
    using (Model db = new Model())
    {
        return db.service_catalog.FirstOrDefault(s => s.name == Catalogname);
    }
}

//Load the services based on the service_catalog selected
private void comboBoxServices_SelectedIndexChanged(object sender, EventArgs e)
{
    service_catalog data = GetName(comboBoxServices.Text);
    List<service> serviceList;
    if (data != null)
    {
        serviceList = dbHelper.services.Where(s =>s.service_catalog_id == data.service_catalog_id).ToList();
        dataGridViewServices.DataSource = serviceList;

    }
}

引发的错误:{“对象引用未设置为对象的实例。”} 这行:

serviceList = dbHelper.services.Where(s => s.service_catalog_id == data.service_catalog_id).ToList();

感谢您的帮助。

编辑
从OP的评论中

serviceList对象计数为0,而数据对象显示为

  

“ {System.Data.Entity.DynamicProxies.service_catalog_BF9EC14C144A9AC84B6F0CB43564996B60E8EA5EA9C2B7D58C0BBE5AE20FC83B}”

0 个答案:

没有答案