public static IEnumerable <TEntity> Select <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, OrderbyClauseResult orderbyClause) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.Select(conn, null, WhereClauseResult.Null, orderbyClause, null)); }
public static Task <IEnumerable <TEntity> > TakeAsync <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause, IDbTransaction tr) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.TakeAsync(conn, take, selectFields, whereClause, orderbyClause, tr, default(CancellationToken))); }
public CommandTextEventInfo ConstructTakeSql <TKey, TEntity>(IList <Expression <Func <TEntity, object> > > logicFields, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { throw new NotImplementedException(); }
public static Task <TEntity> FirstOrDefaultAsync <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause, CancellationToken cancellationToken) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.FirstOrDefaultAsync(conn, selectFields, whereClause, orderbyClause, null, cancellationToken)); }
public static Task <IEnumerable <TEntity> > TakeAsync <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, int take, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause, CancellationToken cancellationToken) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.TakeAsync(conn, take, null, whereClause, orderbyClause, null, cancellationToken)); }
public CommandTextEventInfo ConstructTakeSql <TKey, TEntity>(IList <Expression <Func <TEntity, object> > > logicFields, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { var writer = new StringTextWriter(); var dynParms = new DynamicParameters(); var entityType = typeof(TEntity); var tableName = _dialectSettings.GetEscapeName(entityType); var tp = entityType.GetRuntimeProperties().Where(p => p.PropertyType.IsSimpleType()); if (logicFields != null) { tp = tp.Where(p => !logicFields.Any(exp => string.Equals(p.Name, exp.GetMemberName(), StringComparison.Ordinal))); } if (selectFields != null) { tp = tp.Where(p => selectFields.Any(exp => string.Equals(p.Name, exp.GetMemberName(), StringComparison.Ordinal))); } writer.Write($"SELECT TOP({take}) {string.Join(", ", tp.Select(p => _dialectSettings.GetEscapeName(p)))} FROM {tableName} "); if (whereClause != null) { writer.Write($"WHERE ({whereClause}) "); dynParms.AdddWhereClause(whereClause); } if (!orderbyClause.IsNull) { writer.Write($"ORDER BY {orderbyClause} "); } writer.Write(";"); return(new CommandTextEventInfo(writer.ToStringWithClear(), dynParms)); }
public static Task <TEntity> FirstOrDefaultAsync <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause, IDbTransaction tr, CancellationToken cancellationToken) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.FirstOrDefaultAsync(conn, null, whereClause, orderbyClause, tr, cancellationToken)); }
public static IPageResult <TEntity> Page <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, int skip, int take, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.Page(conn, skip, take, null, whereClause, orderbyClause, null)); }
public static IEnumerable <TEntity> Take <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.Take(conn, take, selectFields, whereClause, orderbyClause, null)); }
protected CommandTextEventInfo ConstructTakeSql(int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause) => ConstructService.ConstructTakeSql <TKey, TEntity>(LogicFields, take, selectFields, whereClause, orderbyClause);
public async Task <IEnumerable <TEntity> > TakeAsync(IStorageDbConnection conn, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause, IDbTransaction tr, CancellationToken cancellationToken) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = ConstructTakeSql(take, selectFields, whereClause, orderbyClause.IsNull ? CreateDefaultOrderbyClause() : orderbyClause); conn.TextWriter.WriteSql(result.CommandText); var cmd = CreateDapperCmd(result.CommandText, result.Parameters, tr, cancellationToken); return((await conn.QueryAsync <TEntity>(cmd)).AsList()); }
public IEnumerable <TEntity> Take(IStorageDbConnection conn, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = ConstructTakeSql(take, selectFields, whereClause, orderbyClause.IsNull ? CreateDefaultOrderbyClause() : orderbyClause); conn.TextWriter.WriteSql(result.CommandText); return(conn.Query <TEntity>(result.CommandText, result.Parameters, tr).AsList()); }
public static Task <IEnumerable <TEntity> > SelectAsync <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, OrderbyClauseResult orderbyClause, IDbTransaction tr) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.SelectAsync(conn, null, WhereClauseResult.Null, orderbyClause, tr, default(CancellationToken))); }
public static Task <IPageResult <TEntity> > PageAsync <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, int skip, int take, OrderbyClauseResult orderbyClause) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.PageAsync(conn, skip, take, null, WhereClauseResult.Null, orderbyClause, null, default(CancellationToken))); }
public static IEnumerable <TEntity> Select <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, IEnumerable <Expression <Func <TEntity, object> > > selectFields, OrderbyClauseResult orderbyClause, IDbTransaction tr) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.Select(conn, selectFields, WhereClauseResult.Null, orderbyClause, tr)); }
public static IEnumerable <TEntity> Take <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, int take, OrderbyClauseResult orderbyClause, IDbTransaction tr) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.Take(conn, take, null, WhereClauseResult.Null, orderbyClause, tr)); }
public async Task <IPageResult <TEntity> > PageAsync(IStorageDbConnection conn, int skip, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause, IDbTransaction tr, CancellationToken cancellationToken) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (skip < 0) { skip = 0; } var result = ConstructPageSql(skip, take, selectFields, whereClause, orderbyClause.IsNull ? CreateDefaultOrderbyClause() : orderbyClause); conn.TextWriter.WriteSql(result.CommandText); var cmd = CreateDapperCmd(result.CommandText, result.Parameters, tr, cancellationToken); var gridReader = await conn.QueryMultipleAsync(cmd); var totalNumberOfRecords = (long)Convert.ChangeType(await gridReader.ReadSingleAsync(typeof(long)), typeof(long), CultureInfo.InvariantCulture); var list = (await gridReader.ReadAsync <TEntity>()).AsList(); return(new PageResult <TEntity>(skip, take, totalNumberOfRecords, list)); }
public CommandTextEventInfo ConstructPageSql <TKey, TEntity>(IList <Expression <Func <TEntity, object> > > logicFields, int skip, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { var writer = new StringTextWriter(); var dynParms = new DynamicParameters(); var entityType = typeof(TEntity); var tableName = _dialectSettings.GetEscapeName(entityType); var tp = entityType.GetRuntimeProperties().Where(p => p.PropertyType.IsSimpleType()); if (logicFields != null) { tp = tp.Where(p => !logicFields.Any(exp => string.Equals(p.Name, exp.GetMemberName(), StringComparison.Ordinal))); } if (selectFields != null) { tp = tp.Where(p => selectFields.Any(exp => string.Equals(p.Name, exp.GetMemberName(), StringComparison.Ordinal))); } // _TotalNumberOfRecords writer.Write($"SELECT COUNT(1) AS _TotalNumberOfRecords FROM {tableName} "); if (whereClause != null) { writer.Write($"WHERE ({whereClause})"); } writer.Write("; "); // PagedResult var propeerties = tp.ToList(); writer.Write($"SELECT {string.Join(", ", propeerties.Select(p => $"PagedResult.{_dialectSettings.GetEscapeName(p)}"))} FROM ("); writer.Write($"SELECT TOP({skip + take}) ROW_NUMBER() OVER(ORDER BY {orderbyClause}) AS _PagedNumber, {string.Join(", ", propeerties.Select(p => _dialectSettings.GetEscapeName(p)))} FROM {tableName}"); if (whereClause != null) { writer.Write($" WHERE ({whereClause})"); dynParms.AdddWhereClause(whereClause); } writer.Write($") AS PagedResult WHERE (PagedResult._PagedNumber > {skip}) "); writer.Write(";"); return(new CommandTextEventInfo(writer.ToStringWithClear(), dynParms)); }