private static void DropDb(System.Data.Entity.Database databaseContext, string databaseName) { string sql = $@" ALTER DATABASE [{databaseName}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE [{databaseName}];"; databaseContext.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction, sql); }
public void With_null_parameters_throws() { var database = new Database(new Mock <InternalContextForMock>().Object); Assert.Equal("parameters", Assert.Throws <ArgumentNullException>(() => database.ExecuteSqlCommand("query", null)).ParamName); }
// // Summary: // Executes the given DDL/DML command against the database. As with any API that // accepts SQL it is important to parameterize any user input to protect against // a SQL injection attack. You can include parameter place holders in the SQL query // string and then supply parameter values as additional arguments. Any parameter // values you supply will automatically be converted to a DbParameter. context.Database.ExecuteSqlCommand("UPDATE // dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor){throw new NotImplementedException();} Alternatively, // you can also construct a DbParameter and supply it to SqlQuery. This allows you // to use named parameters in the SQL query string. context.Database.ExecuteSqlCommand("UPDATE // dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", // userSuppliedAuthor)){throw new NotImplementedException();} // // Parameters: // sql: // The command string. // // parameters: // The parameters to apply to the command string. // // Returns: // The result returned by the database after executing the command. // // Remarks: // If there isn't an existing local or ambient transaction a new transaction will // be used to execute the command. public int ExecuteSqlCommand(string sql, params object[] parameters) { return(_database.ExecuteSqlCommand(sql, parameters)); }