Is it possible to run native sql with entity framework?

ado.net, entity-framework, sql

Solution

For .NET Framework version 4 and above: use `ObjectContext.ExecuteStoreCommand()` if your query returns no results, and use `ObjectContext.ExecuteStoreQuery` if your query returns results.

For previous .NET Framework versions, here's a sample illustrating what to do. Replace ExecuteNonQuery() as needed if your query returns results.

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
    }
}

Problem

I am trying to search an XML field within a table, This is not supported with EF. Without using pure Ado.net is possible to have native SQL support with EF?

Original source