public static void Update <TKey, TEntity>(this IUpdateStore <TKey, TEntity> updateStore, IStorageDbConnection conn, TEntity entityToUpdate, IEnumerable <Expression <Func <TEntity, object> > > updateFields, WhereClauseResult whereClause) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (updateStore == null) { throw new ArgumentNullException(nameof(updateStore)); } updateStore.Update(conn, entityToUpdate, updateFields, whereClause, null); }
public CommandTextEventInfo ConstructExistsSql(Type entityType, WhereClauseResult whereClause) { throw new NotImplementedException(); }
public static IEnumerable <TEntity> Select <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, 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.Select(conn, null, whereClause, orderbyClause, tr)); }
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 ConstructUpdateSql <TKey, TEntity>(IList <Expression <Func <TEntity, object> > > logicFields, TEntity entityToUpdate, IEnumerable <Expression <Func <TEntity, object> > > updateFields, WhereClauseResult whereClause) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { throw new NotImplementedException(); }
public static IEnumerable <TEntity> Take <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, int take, WhereClauseResult whereClause) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.Take(conn, take, null, whereClause, OrderbyClauseResult.Null, null)); }
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 virtual async Task <int> CountAsync(IDbConnection conn, Expression <Func <TEntity, object> > member = null, WhereClauseResult whereClause = null, IDbTransaction tr = null, CancellationToken cctoken = default(CancellationToken)) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var escapeTableName = this._storeMapping.GetEscapeTableName(_classMap.TableName, this._dialectSettings); var columnName = member == null ? "*" : $"{escapeTableName}.{this._storeMapping.GetEscapeColumnName(_classMap.Properties.Get(member.GetMemberName()).ColumnName, this._dialectSettings)}"; var builder = new StringBuilder(); var dynParms = new DynamicParameters(); builder.Append($"SELECT COUNT({columnName}) FROM {escapeTableName}{this.Newline}"); if (whereClause != null) { builder.Append($"{AppUtility.GetCharString(" ", "SE".Length)}WHERE ({whereClause.WhereClause}){this.Newline}"); foreach (var item in whereClause.Parameter) { dynParms.Add(item.Key, item.Value); } whereClause.Parameter.Clear(); } builder.Append(";"); var sql = builder.ToString(); builder.Clear(); try { var cmd = this.BuildDapperCmd(sql, dynParms, tr, cancellationToken: cctoken); return(await conn.QuerySingleAsync(cmd)); } catch (Exception ex) { IDictionary <string, object> parameters = new Dictionary <string, object>(); foreach (var item in dynParms.ParameterNames) { parameters.Insert(item, dynParms.Get <object>(item)); } throw new ExecuteSqlErrorException(sql, parameters, ex.Message, ex); } }
public virtual IEnumerable <TEntity> Select(IDbConnection conn, WhereClauseResult whereClause = null, string sqlOrderbyClause = null, IDbTransaction tr = null) => this.Select(conn, null, whereClause, sqlOrderbyClause, tr);
public static IPageResult <TEntity> Page <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, int skip, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, IDbTransaction tr) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.Page(conn, skip, take, selectFields, whereClause, OrderbyClauseResult.Null, tr)); }
public static bool Exists <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, WhereClauseResult whereClause) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.Exists(conn, whereClause, null)); }
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()); }
protected CommandTextEventInfo ConstructCountSql(Expression <Func <TEntity, object> > member, WhereClauseResult whereClause) => ConstructService.ConstructCountSql <TKey, TEntity>(member, whereClause);
public long Count(IStorageDbConnection conn, Expression <Func <TEntity, object> > member, WhereClauseResult whereClause, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = ConstructCountSql(member, whereClause); conn.TextWriter.WriteSql(result.CommandText); return((long)Convert.ChangeType(conn.QuerySingle(typeof(long), result.CommandText, result.Parameters, tr), typeof(long), CultureInfo.InvariantCulture)); }
private (string sql, DynamicParameters dynParms) ConstructUpdateSql(TEntity entity, IEnumerable <Expression <Func <TEntity, object> > > updateFields, WhereClauseResult whereClause) { DynamicParameters dynParms = new DynamicParameters(); StringBuilder builder = new StringBuilder(); string escapeTableName = this._storeMapping.GetEscapeTableName(_classMap.TableName, this._dialectSettings); var propertyMaps = _classMap.Properties.PropertyMaps.Where(p => !p.Ignored && p.CanModified).ToList(); var updateFieldList = updateFields?.ToList() ?? new List <Expression <Func <TEntity, object> > >(); if (updateFieldList.Any()) { propertyMaps = propertyMaps .Where(p => updateFieldList.Any(exp => string.Equals(p.Name, exp.GetMemberName(), StringComparison.CurrentCultureIgnoreCase))).ToList(); } builder.Append($"UPDATE {escapeTableName}{this.Newline}"); builder.Append($"{AppUtility.GetCharString(" ", "UPD".Length)}SET"); var index = 1; var charString = AppUtility.GetCharString(" ", "UPDATE".Length); foreach (var item in propertyMaps) { string mn = $"{escapeTableName}.{this._storeMapping.GetEscapeColumnName(item.ColumnName, this._dialectSettings)}"; string pn = $"{this._dialectSettings.ParameterPrefix}{item.Name}"; object pv = item.Property.GetValue(entity, null) ?? DBNull.Value; dynParms.Add(pn, pv); builder.Append(index == 1 ? $" {mn} = {pn}{this.Newline}" : $"{charString},{mn} = {pn}{this.Newline}"); index++; } if (whereClause != null) { builder.Append($"{AppUtility.GetCharString(" ", "U".Length)}WHERE ({whereClause.WhereClause}){this.Newline}"); foreach (var item in whereClause.Parameter) { dynParms.Add(item.Key, item.Value); } whereClause.Parameter.Clear(); } builder.Append(";"); string sql = builder.ToString(); builder.Clear(); return(sql, dynParms); }
public virtual async Task <IEnumerable <TEntity> > SelectAsync(IDbConnection conn, WhereClauseResult whereClause = null, string sqlOrderbyClause = null, IDbTransaction tr = null, CancellationToken cctoken = default(CancellationToken)) => await this.SelectAsync(conn, null, whereClause, sqlOrderbyClause, tr, cctoken);
private (string sql, DynamicParameters dynParms) ConstructSelectSql(IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, string sqlOrderbyClause) { DynamicParameters dynParms = new DynamicParameters(); StringBuilder builder = new StringBuilder(); string escapeTableName = this._storeMapping.GetEscapeTableName(_classMap.TableName, this._dialectSettings); var propertyMaps = _classMap.Properties.PropertyMaps.Where(p => !p.Ignored).ToList(); var selectFieldList = selectFields?.ToList() ?? new List <Expression <Func <TEntity, object> > >(); if (selectFieldList.Any()) { propertyMaps = propertyMaps.Where(p => selectFieldList.Any(exp => string.Equals(p.Name, exp.GetMemberName(), StringComparison.CurrentCultureIgnoreCase))).ToList(); } builder.Append("SELECT "); int index = 1; string charString = AppUtility.GetCharString(" ", "SELECT".Length); foreach (var item in propertyMaps) { string mn = $"{escapeTableName}.{this._storeMapping.GetEscapeColumnName(item.ColumnName, this._dialectSettings)}"; builder.Append(index == 1 ? $"{mn}{this.Newline}" : $"{charString},{mn}{this.Newline}"); index++; } builder.Append($"{AppUtility.GetCharString(" ", "SE".Length)}FROM {escapeTableName}{this.Newline}"); if (whereClause != null) { builder.Append($"{AppUtility.GetCharString(" ", "SE".Length)}WHERE ({whereClause.WhereClause}){this.Newline}"); foreach (var item in whereClause.Parameter) { dynParms.Add(item.Key, item.Value); } whereClause.Parameter.Clear(); } sqlOrderbyClause = string.IsNullOrEmpty(sqlOrderbyClause) ? this.BuildOrderbyClause() : sqlOrderbyClause; builder.Append($"{AppUtility.GetCharString(" ", "SE".Length)}ORDER BY {sqlOrderbyClause}{this.Newline}"); builder.Append(";"); string sql = builder.ToString(); builder.Clear(); return(sql, dynParms); }
public virtual IEnumerable <TEntity> Select(IDbConnection conn, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause = null, string sqlOrderbyClause = null, IDbTransaction tr = null) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = this.ConstructSelectSql(selectFields, whereClause, sqlOrderbyClause); try { return(conn.Query <TEntity>(result.sql, result.dynParms, tr)); } catch (Exception ex) { IDictionary <string, object> parameters = new Dictionary <string, object>(); foreach (var item in result.dynParms.ParameterNames) { parameters.Insert(item, result.dynParms.Get <object>(item)); } throw new ExecuteSqlErrorException(result.sql, parameters, ex.Message, ex); } }
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 virtual async Task <IEnumerable <TEntity> > SelectAsync(IDbConnection conn, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause = null, string sqlOrderbyClause = null, IDbTransaction tr = null, CancellationToken cctoken = default(CancellationToken)) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = this.ConstructSelectSql(selectFields, whereClause, sqlOrderbyClause); try { var cmd = this.BuildDapperCmd(result.sql, result.dynParms, tr, cancellationToken: cctoken); return(await conn.QueryAsync <TEntity>(cmd)); } catch (Exception ex) { IDictionary <string, object> parameters = new Dictionary <string, object>(); foreach (var item in result.dynParms.ParameterNames) { parameters.Insert(item, result.dynParms.Get <object>(item)); } throw new ExecuteSqlErrorException(result.sql, parameters, ex.Message, ex); } }
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 abstract IPageResult <TKey, TEntity> SelectPage(IDbConnection conn, int pageNumber, int pageSize, WhereClauseResult whereClause = null, string sqlOrderbyClause = null, IDbTransaction tr = null);
public static DynamicParameters AdddWhereClause(this DynamicParameters dynParms, WhereClauseResult whereClause) { if (dynParms == null) { throw new ArgumentNullException(nameof(dynParms)); } if (whereClause != null && whereClause.Any) { dynParms.AddDynamicParams((DynamicParameters)whereClause); } return(dynParms); }
public abstract IPageResult <TKey, TEntity> SelectPage(IDbConnection conn, int pageNumber, int pageSize, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause = null, string sqlOrderbyClause = null, IDbTransaction tr = null);
public CommandTextEventInfo ConstructCountSql <TKey, TEntity>(Expression <Func <TEntity, object> > member, WhereClauseResult whereClause) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { throw new NotImplementedException(); }
public abstract Task <IPageResult <TKey, TEntity> > SelectPageAsync(IDbConnection conn, int pageNumber, int pageSize, WhereClauseResult whereClause = null, string sqlOrderbyClause = null, IDbTransaction tr = null, CancellationToken cctoken = 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 abstract Task <IPageResult <TKey, TEntity> > SelectPageAsync(IDbConnection conn, int pageNumber, int pageSize, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause = null, string sqlOrderbyClause = null, IDbTransaction tr = null, CancellationToken cctoken = default(CancellationToken));
public static IEnumerable <TEntity> Select <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, 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.Select(conn, selectFields, whereClause, orderbyClause, null)); }
public static void Update <TKey, TEntity>(this IUpdateStore <TKey, TEntity> updateStore, IStorageDbConnection conn, TEntity entityToUpdate, WhereClauseResult whereClause, IDbTransaction tr) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (updateStore == null) { throw new ArgumentNullException(nameof(updateStore)); } updateStore.Update(conn, entityToUpdate, null, whereClause, tr); }