Esempio n. 1
0
        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)));
            }
        }
Esempio n. 2
0
        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;
        }
Esempio n. 4
0
 internal ATrineRDFDependencies(IRelationalDatabaseFacadeDependencies dependencies)
 => Instance = dependencies;