can anyone explain why this code is causing an error?
<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>
The error I get is: "The identifier 'it' is not valid because it is not contained either in an aggregate function or in the GROUP BY clause."
In the Select
clause you cannot use properties which you don't use in the GroupBy
clause. You either need to omit all other properties except for t_session_datetime
from the Select clause or add them to the GroupBy clause or apply aggregate function - for instance Count
, Min
, Max
, Sum
, etc. to them. Your Select clause could then look like:
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"
I am not sure if this will work for Active
if that is a boolean property. You can find a list of aggregate functions which are available in Entity SQL here.