1

我有一个 EntityDataSource 可以从 tblOrderFile 获取行数据,如下所示:

<asp:EntityDataSource ID="entityDataSourcePreorder" runat="server" 
        ConnectionString="name=iDBEntities" 
        DefaultContainerName="iDBEntities" EnableFlattening="False" 
        EntitySetName="tblOrderFiles" 
        Select="it.[pkOrderFileID], it.[fkOrderFileStatusID], it.[Filename], it.[CreateDate], it.[UserId]" 
        AutoGenerateWhereClause="True" EntityTypeFilter="" Where="">

我现在想修改它以返回子表 tblOrderFileItem 中的行数(带有实体集名称 tblOrderFileItems)。

我找到了一种通过添加 Include 指令来使 Count 工作的方法,如下所示:

    <asp:EntityDataSource ID="entityDataSourcePreorder" runat="server" 
        ConnectionString="name=iDBEntities" 
        DefaultContainerName="iDBEntities" EnableFlattening="False" 
        EntitySetName="tblOrderFiles" Include="tblOrderFileItems"
        AutoGenerateWhereClause="True" EntityTypeFilter="" Where="" >
    </asp:EntityDataSource>

但我相信这是返回每个订单项的所有行的所有列。我只想要 Count 而不想将其余数据传递到网页。

我也尝试简单地将 it.tblOrderFileItems.Count 添加到 Select 语句中,但收到一条错误消息

“Count”不是“Transient.collection[MyDBModel.tblOrderFileItem(Nullable=True,DefaultValue=)]”的成员。要提取集合元素的属性,请使用子查询来迭代集合。

4

1 回答 1

0
Select="ANYELEMENT(SELECT VALUE Count(c.ItemId) FROM it.tblOrderFileItems AS c) as ChildCount"
于 2013-07-12T03:09:45.123 回答