C# 使用实体框架时如何设置bindingsource的datamember

C# 使用实体框架时如何设置bindingsource的datamember,c#,entity-framework,bindingsource,C#,Entity Framework,Bindingsource,我正在尝试学习EF和winforms的数据绑定。我有两个资料来源。对于第一个“bsa”,我已经设置了数据源,但没有设置datamember。对于第二个bindingsource“bsb”,我已将数据源设置为“bsa”,并尝试按照下面的说明设置datamember属性。在数据源上找不到DataMember属性“Contact.Addresses”时,我收到一个错误消息 私有void Form1\u加载(对象发送方、事件参数e) //客户具有联系人导航属性,联系人具有地址导航属性 b

我正在尝试学习EF和winforms的数据绑定。我有两个资料来源。对于第一个“bsa”,我已经设置了数据源,但没有设置datamember。对于第二个bindingsource“bsb”,我已将数据源设置为“bsa”,并尝试按照下面的说明设置datamember属性。在数据源上找不到DataMember属性“Contact.Addresses”时,我收到一个错误消息

私有void Form1\u加载(对象发送方、事件参数e)

//客户具有联系人导航属性,联系人具有地址导航属性

        bsb.DataMember = ("Contact.Addresses");        
        dataGridView2.DataSource = bsb;

        dataGridView2.AutoGenerateColumns = true;
    }

我是否可以设置第二个bindingsource“bsb”的datamember而不设置第一个bindingsource“bsa”的datamember?

我会将其作为注释而不是答案发布,因为我不是100%确定,但我希望您应该将datamember设置为简单的“地址”。您好,谢谢您的建议。我试着用“地址”没用。客户实体将联系人作为导航属性,联系人实体将地址作为导航属性。如果我将数据源“bsa”的datamember设置为“Contact”,它就可以工作了对不起,错过了这个多级关系。在这种情况下,您可能需要使用三个BindingSources使其自动工作,因为您涉及三个实体。在第二级,您可以使用“联系人”作为数据成员,然后在第三级使用“地址”。再说一次,这只是直觉,所以我不确定它是否有效。我自己从来没有试过。再次谢谢。这已经奏效了。那么,这是否意味着我需要为每个实体设置一个bindingsource,并设置datamember,然后链接bindingsources呢。正如我所说,我自己从未尝试过,所以我不是100%确定。我可以理解为什么您首先尝试了您所做的,但是,如果这不起作用,我认为每个实体必须有一个BindingSource,即使中间实体实际上没有显式地绑定到UI。
        bsb.DataMember = ("Contact.Addresses");        
        dataGridView2.DataSource = bsb;

        dataGridView2.AutoGenerateColumns = true;
    }