क्रेग का जवाब, जबकि यह काम नहीं करता था, मुझे सही दिशा में देख रहा था। पता चलता है कि एक EntityConnection.StoreConnection प्रॉपर्टी है जो आपको अंतर्निहित डीबीएमएस से कनेक्शन देती है। इसलिए "मूल" SQL को क्रियान्वित करना इतना आसान है:
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
}
}