C# 数据绑定:Generic.HashSet`1不包含名称为的属性

C# 数据绑定:Generic.HashSet`1不包含名称为的属性,c#,asp.net,entity-framework,gridview,entitydatasource,C#,Asp.net,Entity Framework,Gridview,Entitydatasource,我有一个名为Employee的实体,它有一个名为Groups的导航属性。 我有一个名为“组”的实体,它与一名员工相关,并具有“名称”和“说明”字段 我有一个EntityDataSource要根据在GridView1中选择的员工进行筛选,其中包含组,其定义如下: <asp:EntityDataSource ID="GroupsByEmployeeSource" runat="server" ConnectionString="name=SafetyContext" DefaultContai

我有一个名为Employee的实体,它有一个名为Groups的导航属性。 我有一个名为“组”的实体,它与一名员工相关,并具有“名称”和“说明”字段

我有一个EntityDataSource要根据在GridView1中选择的员工进行筛选,其中包含组,其定义如下:

<asp:EntityDataSource ID="GroupsByEmployeeSource" runat="server" ConnectionString="name=SafetyContext" DefaultContainerName="SafetyContext" EnableDelete="True" EnableFlattening="False" EnableInsert="True" EnableUpdate="True" EntitySetName="Employees" Include="Groups" Where="it.[EID] == @EmpID">
    <WhereParameters>
        <asp:ControlParameter Name="EmpID" Type="Int32" ControlID="GridView1" PropertyName="SelectedDataKey.Value" />
    </WhereParameters>
</asp:EntityDataSource>
<asp:GridView runat="server" ID="GridView3" DataSourceID="GroupsByEmployeeSource" AutoGenerateColumns="False">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="GroupsByEmployee" runat="server" Text='<%#Eval("Groups.Name") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

我肯定遗漏了什么,但实体组肯定有一个名为Name的属性。有人知道这里出了什么问题吗?

也有同样的问题。关系返回集合是因为fk(外键)关系,因为Emp可以在多个组中,这将返回集合,如AMasoud的注释中所述。因此,您可以使用Groups.Count return EmpID在组表中显示的次数,但遗憾的是,您无法确定名称b/c它将返回集合


如果FK是一对一或多对一(不是一对多),则您将能够提取名称。

查看异常情况,运行时正在尝试绑定集合而不是实体。组是一个集合,因此没有名为Name的属性。您想绑定Groups类型的组的集合元素,那么如何继续?我读过这篇文章:我正在做在那里起作用的事情。这里有什么区别?
System.Web.HttpException: DataBinding: 'System.Collections.Generic.HashSet`1[[SafetyTrackingConceptApplication.DAL.Group, SafetyTrackingConceptApplication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' does not contain a property with the name 'Name'.