public static async Task <RelationalDataReader> ExecuteSqlQueryAsync(this DatabaseFacade databaseFacade, string sql, TheGodfatherDbContext db, params object[] parameters) { IConcurrencyDetector concurrencyDetector = databaseFacade.GetService <IConcurrencyDetector>(); using (concurrencyDetector.EnterCriticalSection()) { RawSqlCommand rawSqlCommand = databaseFacade .GetService <IRawSqlCommandBuilder>() .Build(sql, parameters); return(await rawSqlCommand .RelationalCommand .ExecuteReaderAsync( new RelationalCommandParameterObject( databaseFacade.GetService <IRelationalConnection>(), parameterValues : rawSqlCommand.ParameterValues, readerColumns : null, context : db, logger : null ) )); } }
public static async Task <RelationalDataReader> ExecuteCommandAsync(this DatabaseFacade databaseFacade, RawSqlCommand rawSqlCommand, CancellationToken cancellationToken = default(CancellationToken), params object[] parameters) { var concurrencyDetector = databaseFacade.GetService <IConcurrencyDetector>(); using (concurrencyDetector.EnterCriticalSection()) { return(await rawSqlCommand .RelationalCommand .ExecuteReaderAsync( databaseFacade.GetService <IRelationalConnection>(), parameterValues : rawSqlCommand.ParameterValues, cancellationToken : cancellationToken)); } }
/// <summary> /// execute sql and return data reader /// </summary> /// <param name="databaseFacade"></param> /// <param name="sql"></param> /// <param name="parameters"></param> /// <returns></returns> public static RelationalDataReader ExecuteSqlQuery(this DatabaseFacade databaseFacade, string sql, params object[] parameters) { IConcurrencyDetector concurrencyDetector = databaseFacade.GetService <IConcurrencyDetector>(); using (concurrencyDetector.EnterCriticalSection()) { RawSqlCommand rawSqlCommand = databaseFacade .GetService <IRawSqlCommandBuilder>() .Build(sql, parameters); return(rawSqlCommand .RelationalCommand .ExecuteReader( databaseFacade.GetService <IRelationalConnection>(), parameterValues: rawSqlCommand.ParameterValues)); } }
public static async Task <RelationalDataReader> ExecuteSqlQueryAsync(this DatabaseFacade databaseFacade, string sql, CancellationToken cancellationToken = default, params object[] parameters) { IConcurrencyDetector concurrencyDetector = databaseFacade.GetService <IConcurrencyDetector>(); using (concurrencyDetector.EnterCriticalSection()) { RawSqlCommand rawSqlCommand = databaseFacade .GetService <IRawSqlCommandBuilder>() .Build(sql, parameters); return(await rawSqlCommand .RelationalCommand .ExecuteReaderAsync( databaseFacade.GetService <IRelationalConnection>(), parameterValues : rawSqlCommand.ParameterValues, cancellationToken : cancellationToken)); } }
private static async Task <RelationalDataReader> ExecuteSqlQueryAsync( this DbContext dbContext, string sql, IEnumerable <object> parameters, CancellationToken cancellationToken = default) { if (dbContext == null) { throw new ArgumentNullException(nameof(dbContext)); } if (string.IsNullOrWhiteSpace(sql)) { throw new ArgumentNullException(nameof(sql)); } IConcurrencyDetector concurrencyDetector = dbContext.GetService <IConcurrencyDetector>(); using (concurrencyDetector.EnterCriticalSection()) { RawSqlCommand rawSqlCommand = dbContext .GetService <IRawSqlCommandBuilder>() .Build(sql, parameters); RelationalCommandParameterObject paramObject = new RelationalCommandParameterObject( dbContext.GetService <IRelationalConnection>(), rawSqlCommand.ParameterValues, null, null, null); RelationalDataReader relationalDataReader = await rawSqlCommand .RelationalCommand .ExecuteReaderAsync(paramObject, cancellationToken); return(relationalDataReader); } }