У меня есть 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).
Я нашел способ заставить Count работать, добавив директиву Include следующим образом:
<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 =)]'. Чтобы извлечь свойство элемента коллекции, используйте подзапрос для перебора коллекции.