是否有可能运行与实体框架本地SQL? [英] Is it possible to run native sql with entity framework?
问题描述
我想在表中搜索XML字段,这是不支持EF
I am trying to search an XML field within a table, This is not supported with EF.
如果不使用纯Ado.net可能有本地SQL的支持与EF?
Without using pure Ado.net is possible to have native SQL support with EF?
推荐答案
有关.NET Framework版本4及以上:使用<一个href="http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.executestorecommand.aspx"><$c$c>ObjectContext.ExecuteStoreCommand()$c$c>如果您的查询返回任何结果,并使用<一个href="http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.executestorequery.aspx"><$c$c>ObjectContext.ExecuteStoreQuery$c$c>如果您的查询返回的结果。
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.
有关previous的.NET Framework版本,这里说明什么做样品。更换的ExecuteNonQuery根据需要,如果您的查询返回的结果()。
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
}
}
这篇关于是否有可能运行与实体框架本地SQL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!