Asp.net 数据绑定:';动态类1';不包含名为';员工ID';

Asp.net 数据绑定:';动态类1';不包含名为';员工ID';,asp.net,dynamic-data,Asp.net,Dynamic Data,我在动态数据网站的列表页面中使用了聚合函数。当它执行时,它给了我, 数据绑定:“DynamicClass1”不包含名为“EmployeeID”的属性。 <asp:GridView ID="GridView1" runat="server" DataSourceID="GridDataSource" AllowPaging="True" AllowSorting="True" CssClass="gridview">

我在动态数据网站的列表页面中使用了聚合函数。当它执行时,它给了我, 数据绑定:“DynamicClass1”不包含名为“EmployeeID”的属性。

  <asp:GridView ID="GridView1" runat="server" DataSourceID="GridDataSource"
                AllowPaging="True" AllowSorting="True" CssClass="gridview">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:HyperLink ID="EditHyperLink" runat="server"
                                NavigateUrl='<%# table.GetActionPath(PageAction.Edit, GetDataItem()) %>'
                            Text="Edit" />&nbsp;<asp:LinkButton ID="DeleteLinkButton" runat="server" CommandName="Delete"
                                CausesValidation="false" Text="Delete"
                                OnClientClick='return confirm("Are you sure you want to delete this item?");'
                            />&nbsp;<asp:HyperLink ID="DetailsHyperLink" runat="server"
                                NavigateUrl='<%# table.GetActionPath(PageAction.Details, GetDataItem()) %>'
                                Text="Details" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>

                <PagerStyle CssClass="footer"/>        
                <PagerTemplate>
                    <asp:GridViewPager runat="server" />
                </PagerTemplate>
                <EmptyDataTemplate>
                    There are currently no items in this table.
                </EmptyDataTemplate>
            </asp:GridView>

            <asp:LinqDataSource ID="GridDataSource" runat="server" 
            ContextTypeName="DataClassesDataContext" 
              TableName="Employees" 
              GroupBy="EmployeeNo"
              Select="new(Key, 
                Max(Version) As VersionNo)"
            EnableDelete="true">
                <WhereParameters>
                    <asp:DynamicControlParameter ControlID="FilterRepeater" />
                </WhereParameters>
            </asp:LinqDataSource>

此表中当前没有项目。
除了在Linq数据源中添加了ContextTypeName、TableName、GroupBy和select之外,我没有更改任何默认代码。。。 表“EmployeeID、EmployeeNo、EmployeeName、部门、地址、城市、州、国家、版本”列为“雇员”

你知道怎么解决这个问题吗

提前谢谢

问候,,
Bala

问题在于,您正在分组的数据不会创建网格期望接收的数据类型。GetDataItem()需要特定类型的数据,而这不是您在LinqDataSource中设置的数据

您的选择需要包括GetDateItem()所需的所有项目,但现在它没有:

new(Key, Max(Version) As VersionNo) //EmployeeID needs to be included here
为了让员工。。。使用:
Key.Employee

键是一个动态类,包含GROUPBY语句中指定的所有属性


其他任何内容(如员工姓名、部门、地址、城市、州、国家、版本)都需要汇总报表(如总和、最大值、最小值)。

谢谢您的回复。除了在Linq数据源中添加了ContextTypeName、TableName、GroupBy和select之外,我没有更改任何默认代码……Tabel Employees“EmployeeID、EmployeeNo、EmployeeName、部门、地址、城市、州、国家/地区、版本”列..添加Select=“new(Key,Max(Version)as VersionNo,EmployeeID)”会出现错误类型“IGrouping`2'”中不存在属性或字段“EmployeeId”。我也尝试过,GroupBy=“new(EmployeeNo,EmployeeId)”也会出现同样的错误!@Bala我会先尝试删除分组,让它在没有分组的情况下工作。然后我会尝试构建一个与您想要的类似的LINQ查询(不是在标记中,而是在后面的代码中)。这将允许您制定您的groupby和select应该是什么。
new(Key, Max(Version) As VersionNo) is fine.