4 de nov. de 2009

Executar uma query SQL no Entity Framework

public static void ExecuteQueryEF(ObjectContext c, string sql)   
{
    // -> Obtém a conexão do contexto
    var entityConnection = (EntityConnection)c.Connection;       
    // -> Cria um dbConnection
    DbConnection conn = entityConnection.StoreConnection;       
    // -> Salva o estado inicial da conexão;
    ConnectionState initialState = conn.State;       

    try       
    {
        // -> Abre a conexão caso necessário.
        if (initialState != ConnectionState.Open)               
            conn.Open(); 

        // -> Cria um comando.
        using (DbCommand cmd = conn.CreateCommand())           
        {               
            cmd.CommandText = sql;               
            cmd.ExecuteNonQuery(); // -> Executa o SQL.     
        }       
    }       
    finally       
    {           
        // -> Caso o estado inicial não for aberto
        //    fechasse a conn.
        if (initialState != ConnectionState.Open)               
            conn.Close();
    }   
}

Método que executa uma query na conexão do EntityFramework.

2 comentários:

Márcio Fábio Althmann disse...

E ai :) gostei do código, mas nã precisa de um try/finally só para verificar o status da conexão e fechar a mesma, DbConnection também implementa IDisposable, então é melhor colocar a conexão no using() também.

Abraços e parabéns :)

Anônimo disse...

legal,mas como que faço pra pegar essa informaçao via linq????
no seu codigo so executo,e como faço para pegar a informçao

grato