C# “EF生成”;不支持指定的方法";SqlQuery中的错误
我目前正在使用实体框架5 我已尝试编写以下代码:C# “EF生成”;不支持指定的方法";SqlQuery中的错误,c#,entity-framework-5,C#,Entity Framework 5,我目前正在使用实体框架5 我已尝试编写以下代码: var result = context.Database.SqlQuery<Entity>("SELECT * FROM ref.Entity"); 谁能给我看看这个问题的解决方案吗 堆栈跟踪 “在EFProviderWrapperToolkit.DbConnectionWrapper.CreateDbCommand()\r\n在System.Data.Common.DbConnection.CreateCommand()\r\n
var result = context.Database.SqlQuery<Entity>("SELECT * FROM ref.Entity");
谁能给我看看这个问题的解决方案吗
堆栈跟踪
“在EFProviderWrapperToolkit.DbConnectionWrapper.CreateDbCommand()\r\n在System.Data.Common.DbConnection.CreateCommand()\r\n在System.Data.Objects.ObjectContext.CreateStoreCommand(String commandText,Object[]参数)\r\n在System.Data.Objects.ObjectContext.ExecuteStoreQueryInternal[TElement](字符串commandText,字符串entitySetName,MergeOption MergeOption,对象[]参数)\r\n在System.Data.Objects.ObjectContext.ExecuteStoreQuery[TElement](字符串commandText,对象[]参数)\r\n在System.Data.Entity.InternalContext.ExecuteSqlQuery[TElement](字符串sql,对象[]参数)\r\n位于System.Data.Entity.Internal.InternalContext.ExecuteSqlQueryAsIEnumerable[TElement](字符串sql,对象[]参数)\r\n位于System.Data.Entity.Internal.InternalContext.ExecuteSqlQuery(类型elementType,字符串sql,对象[]参数)\r\n位于System.Data.Entity.Internal.InternalSqlNonSetQuery.GetEnumerator()\r\n位于System.Data.Entity.Internal.InternalSqlQuery1.GetEnumerator()\r\n位于System.Linq.SystemCore\u EnumerableDebugView
1.get\u Items()
答案很简单。我不确定您是否拥有EFProviderWrapperToolkit的源代码,您应该获取它并查看一下。您会注意到,DbConnectionWrapper继承自DbConnection,它覆盖CreateDbCommand方法,但不为其提供任何功能,而是引发和异常
/// <summary>
/// Creates and returns a <see cref="T:System.Data.Common.DbCommand"/> object associated with the current connection.
/// </summary>
/// <returns>
/// A <see cref="T:System.Data.Common.DbCommand"/> object.
/// </returns>
protected override DbCommand CreateDbCommand()
{
throw new NotSupportedException();
}
//
///创建并返回与当前连接关联的对象。
///
///
///物体。
///
受保护的覆盖DbCommand CreateDbCommand()
{
抛出新的NotSupportedException();
}
这在codeplex“社区实体框架提供商包装器”的“已知问题”部分提到。引用:
不支持使用ObjectContext.ExecuteStoreCommand或ObjectContext.ExecuteStoreQuery等方法直接执行存储命令。但是,您可以使用以下代码从数据库连接创建DbCommand:
using EFProviderWrapperToolkit;
...
context.Connection.GetStoreConnection().CreateCommand()
ref将是未定义的…SQL不知道如何处理它?不理解您的注释,ExecuteSqlCommand()还返回System.NotSupportedException您可以发布异常堆栈tracefalls EFProviderWrapperToolkit。问题已解决
using EFProviderWrapperToolkit;
...
context.Connection.GetStoreConnection().CreateCommand()