我有一个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 =)]'的成员。要提取集合元素的属性,请使用子查询迭代集合。
答案 0 :(得分:0)
Select="ANYELEMENT(SELECT VALUE Count(c.ItemId) FROM it.tblOrderFileItems AS c) as ChildCount"