sql >> Database >  >> RDS >> PostgreSQL

Entity Framework ObjectContext -> onbewerkte SQL-aanroepen naar native DBMS

Craig's antwoord, hoewel het niet werkte zoals het was, zorgde ervoor dat ik in de goede richting keek. Blijkt dat er een EntityConnection.StoreConnection-eigenschap is waarmee u verbinding kunt maken met het onderliggende DBMS. Dus het uitvoeren van "native" SQL is zo eenvoudig als dit:

    static void ExecuteSql(ObjectContext c, string sql)
    {
        var entityConnection = (System.Data.EntityClient.EntityConnection)c.Connection;
        DbConnection conn = entityConnection.StoreConnection;

        ConnectionState initialState = conn.State;
        try
        {
            if (initialState != ConnectionState.Open)
                conn.Open();  // open connection if not already open
            using (DbCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
            }
        }
        finally
        {
            if (initialState != ConnectionState.Open)
                conn.Close(); // only close connection if not initially open
        }
    }


  1. mysql select inner join met limiet

  2. MySQL Event If-instructie END IF Error

  3. Wat zijn JDBC-mysql-stuurprogramma-instellingen voor een gezonde omgang met DATETIME en TIMESTAMP in UTC?

  4. Orakel Kijk achter Positief