public static async Task <int> ExecuteNonQueryAsync(this DatabaseFacade databaseFacade, string sql, params object[] parameters) { IRelationalDatabaseFacadeDependencies facadeDependencies = GetFacadeDependencies(databaseFacade); IConcurrencyDetector concurrencyDetector = ((IDatabaseFacadeDependencies)facadeDependencies).ConcurrencyDetector; IDiagnosticsLogger <DbLoggerCategory.Database.Command> commandLogger = ((IDatabaseFacadeDependencies)facadeDependencies).CommandLogger; using (concurrencyDetector.EnterCriticalSection()) { var rawSqlCommand = databaseFacade.Build(sql, parameters); return(await rawSqlCommand.RelationalCommand.ExecuteNonQueryAsync(new RelationalCommandParameterObject(facadeDependencies.RelationalConnection, rawSqlCommand.ParameterValues, null, ((IDatabaseFacadeDependenciesAccessor)databaseFacade).Context, commandLogger))); } }
internal static T ExecuteReader <T>(this DatabaseFacade databaseFacade, string sql, object[] parameters, Func <DbDataReader, T> func) { T result = default(T); IRelationalDatabaseFacadeDependencies facadeDependencies = GetFacadeDependencies(databaseFacade); IConcurrencyDetector concurrencyDetector = ((IDatabaseFacadeDependencies)facadeDependencies).ConcurrencyDetector; IDiagnosticsLogger <DbLoggerCategory.Database.Command> commandLogger = ((IDatabaseFacadeDependencies)facadeDependencies).CommandLogger; using (concurrencyDetector.EnterCriticalSection()) { var rawSqlCommand = databaseFacade.Build(sql, parameters); using (var reader = rawSqlCommand.RelationalCommand.ExecuteReader(new RelationalCommandParameterObject(facadeDependencies.RelationalConnection, rawSqlCommand.ParameterValues, null, ((IDatabaseFacadeDependenciesAccessor)databaseFacade).Context, commandLogger))) { result = func.Invoke(reader.DbDataReader); } } return(result); }
/// <summary> /// Sets the underlying connection string configured for this Microsoft.EntityFrameworkCore.DbContext. /// It may not be possible to change the connection string if existing connection, /// if any, is open. /// </summary> /// <param name="database">The Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade for the context.</param> /// <param name="connectionString">The connection string.</param> public static void SetConnectionString(this DatabaseFacade database, string connectionString) { IRelationalDatabaseFacadeDependencies databaseFacadeDependencies = database.GetFacadeDependencies(); databaseFacadeDependencies.RelationalConnection.DbConnection.ConnectionString = connectionString; }
internal ATrineRDFDependencies(IRelationalDatabaseFacadeDependencies dependencies) => Instance = dependencies;