EntityDataSource GROUPBY проблема - PullRequest
1 голос
/ 31 марта 2011

Кто-нибудь может объяснить, почему этот код вызывает ошибку?

<asp:EntityDataSource ID="EntityDataSource1" runat="server" 
    ContextTypeName="bookingModel.bookingEntities" 
    EntitySetName="t_sessionSet" 
    Select="it.[t_session_id], it.[t_session_datetime], it.[t_session_location], it.[t_session_active], it.[t_session_notes], it.[t_session_trainer]"
    GroupBy="it.[t_session_datetime]" >
</asp:EntityDataSource>

Я получаю ошибку: «Идентификатор 'it' недействителен, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY."

1 Ответ

2 голосов
/ 31 марта 2011

В предложении Select нельзя использовать свойства, которые вы не используете в предложении GroupBy. Вам нужно либо опустить все другие свойства, кроме t_session_datetime в предложении Select, либо добавить их в предложение GroupBy, либо применить статистическую функцию - например, Count, Min, Max, Sum и т. Д. Для их. Ваше предложение Select может выглядеть так:

Select="Min(it.[t_session_id]) AS MinId,
    it.[t_session_datetime],
    Min(it.[t_session_location]) AS Location,
    Min(it.[t_session_active]) AS Active,
    Min(it.[t_session_notes]) AS Notes,
    Min(it.[t_session_trainer]) AS Trainer"

Я не уверен, будет ли это работать для Active, если это логическое свойство. Вы можете найти список агрегатных функций, которые доступны в Entity SQL здесь .

...