sql >> Databáze >  >> RDS >> PostgreSQL

Entity Framework ObjectContext -> nezpracovaná volání SQL do nativního DBMS

Craigova odpověď, i když nefungovala tak, jak je, mě přiměla podívat se správným směrem. Ukázalo se, že existuje vlastnost EntityConnection.StoreConnection, která vám umožní připojení k základnímu DBMS. Spuštění "nativního" SQL je tedy snadné takto:

    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. PostgreSQL - získávání položek v pořadí, v jakém byly uloženy

  2. Rozdíl mezi 'AND' a '&&' v SQL

  3. Highchart - Zobrazení dat JSON - MYSQL / PHP

  4. Oprava chyby ORA-65096 při vytváření automatických testů v Django pomocí Oracle