如何使用Entity Framework在C#gridview中显示主相关数据

时间:2017-07-31 08:22:01

标签: c# winforms entity-framework

我正在使用Entity Framework并坚持显示主表的详细记录。

我在表单上有MasterBindingSourceDetailsBindingSource以及两个DataGridView

我要做的是:填写与detailsGridView上所选数据相关的masterGridView

有人可以指导我吗?

这就是我已经完成的工作,我可以填写masterGridview但是详细信息表没有填写与主人相关...

MasterTbBindingSource.DataSource = lobo.MasterTb.Include("DetailTb").ToList();

我错过了什么?感谢

更新

public partial class CONTACTS_BASE//Master
{
    public CONTACTS_BASE()
    {
        this.ORDERS = new HashSet<ORDER>();
    }

    public int CB_REFNO { get; set; }
    public string CB_NAME { get; set; }
    public string CB_ID_NO { get; set; }
    public string CB_AGE { get; set; }

    public virtual ICollection<ORDER> ORDERS { get; set; }
}

public partial class ORDER //Detail
{
    public int OR_REFNO { get; set; }
    public string OR_PROD_CODE { get; set; }
    public Nullable<int> OR_M_REFNO { get; set; }

    public virtual CONTACTS_BASE CONTACTS_BASE { get; set; }
}

这就是我试图实现目标的原因:

using (var lobo = new MyEfTestEntities())
{
            CONTACTS_BASEBindingSource.DataSource = lobo.CONTACTS_BASE.Include("ORDERS").ToList();

            ORDERBindingSource.DataSource = CONTACTS_BASEBindingSource;
            ORDERBindingSource.DataMember = "ORDERS";  
}

1 个答案:

答案 0 :(得分:2)

它与实体框架无关。自动主控 - 使用DataGridView组件同步两个BindingSource控件非常简单。您只需将主BindingSource设置为详细信息DataSource的{​​{1}},并使用详细信息BindingSource的{​​{1}}来指定详细信息的名称集合。

这样的事情:

DataMember