/// <summary> /// Execute the query and return a single value. /// </summary> /// <returns>The value</returns> virtual public T ExecuteScalar <T>() { FixupSerializedQueries(); esDataRequest request = new esDataRequest(); this.PopulateRequest(request); esDataProvider provider = new esDataProvider(); esDataResponse response = provider.ExecuteScalar(request, this.es2.Connection.ProviderSignature); return((T)response.Scalar); }
/// <summary> /// Execute the Query and loads your BusinessEntity. /// If you need to be notified that this is being called /// override BusinessEntity.Query.OnLoadEvent(). /// </summary> /// <remarks> /// The default conjunction is AND. /// You can change the default conjunction this way: /// <code> /// emps.Query.es.DefaultConjunction = esConjunction.Or; /// </code> /// </remarks> /// <returns>True if at least one record was loaded</returns> virtual public bool Load() { bool loaded = false; DataTable table = null; FixupSerializedQueries(); esDataRequest request = new esDataRequest(); this.PopulateRequest(request); esDataProvider provider = new esDataProvider(); esDataResponse response = provider.esLoadDataTable(request, this.es2.Connection.ProviderSignature); table = response.Table; if (prefetchMaps != null) { foreach (esPrefetchMap map in prefetchMaps) { // Give our Prefetch Queries the proper connection strings if (!map.Query.es2.HasConnection) { string generatedName = this.GetConnectionName(); if (generatedName != null) { // Use the connection name typed into the generated master when they // generated the code map.Query.es2.Connection.Name = generatedName; } else { // Use the connection from the Collection/Entity at the time they // call Load() map.Query.es2.Connection.Name = this.connection.Name; } } map.Table = map.Query.LoadDataTable(); } } if (this.OnLoadDelegate != null) { loaded = OnLoadDelegate(this, table); } return(loaded); }
/// <summary> /// This merely parses and returns the SQL Syntax, no SQL is executed. /// </summary> /// <remarks> /// The default conjunction is AND. /// You can change the default conjunction this way: /// <code> /// emps.Query.es.DefaultConjunction = esConjunction.Or; /// </code> /// </remarks> /// <returns>The SQL Syntax, the same as query.es.LastQuery when a query is executed.</returns> virtual public string Parse() { FixupSerializedQueries(); esDataRequest request = new esDataRequest(); this.PopulateRequest(request); request.QueryType = esQueryType.DynamicQueryParseOnly; esDataProvider provider = new esDataProvider(); esDataResponse response = provider.esLoadDataTable(request, this.es2.Connection.ProviderSignature); return(response.LastQuery); }
/// <summary> /// Execute the Query and load a DataTable. /// </summary> /// <returns>A DataTable containing the loaded records.</returns> virtual public DataTable LoadDataTable() { DataTable table = null; FixupSerializedQueries(); esDataRequest request = new esDataRequest(); this.PopulateRequest(request); esDataProvider provider = new esDataProvider(); esDataResponse response = provider.esLoadDataTable(request, this.es2.Connection.ProviderSignature); table = response.Table; return(table); }