public virtual string BuildQuery <TElement>(TableQueryBase query) where TElement : new() { switch (query.OperationType) { case TableOperationType.Insert: return(BuildInsertQuery((TableInsertQuery <TElement>)query)); case TableOperationType.Delete: return(BuildDeleteQuery((TableDeleteQuery <TElement>)query)); case TableOperationType.Retrieve: return(BuildRetrieveQuery((TableSelectQuery <TElement>)query)); case TableOperationType.Update: return(BuildUpdateQuery((TableUpdateQuery <TElement>)query)); } return(string.Empty); }
public async Task <TElement> ExecuteQueryAsync <TElement>(TableQueryBase query) where TElement : new() { IList <TElement> result = await ExecuteQuerySegmentAsync <TElement>(query); return(result.FirstOrDefault()); }
public async Task <ScalarResult> ExecuteScalarAsync <TElement>(TableQueryBase query) where TElement : new() { var queryString = BuildQuery <TElement>(query); return(await ExecuteScalarAsync(new QueryString(queryString, query.OperationType))); }
public async Task <IList <TElement> > ExecuteQuerySegmentAsync <TElement>(TableQueryBase query) where TElement : new() { string queryString = BuildQuery <TElement>(query); return(await ExecuteQueryAsync(new QueryString(queryString, query.OperationType), TableSelectQuery <TElement> .nothing)); }
public QueryFilter(string column, TableQueryBase query, FilterType filterType) : base(column, filterType) { Query = query; }
public static TableSelectQuery <TElement> Any <TElement, TOther>(this TableSelectQuery <TElement> query, string column, TableQueryBase otherQuery) where TElement : class, new() where TOther : class, new() { query.Filters.Add(new QueryFilter <TOther>(column, otherQuery, FilterType.Any)); return(query); }