Gav*_*vin 10
前几天谷歌搜索这个,这是我发现希望它有帮助的例子
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();
using (DbCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
}
finally
{
if (initialState != ConnectionState.Open)
conn.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
在EF 4.0中,这非常简单,因为有一些新方法ObjectContext允许您直接执行存储命令(即SQL):
如果您仍在使用EF 3.5 SP1,如果您真的想要这样,您仍然可以直接对数据库执行查询:
var econn = ctx.Connection as EntityConnection;
var dbconn = econn.StoreConnection;
Run Code Online (Sandbox Code Playgroud)
此时,您可以访问底层数据库的连接(dbconn),因此您可以使用普通的ADO.NET代码来执行查询等.
希望这可以帮助
亚历克斯