我当前正在使用Entity Framework 5我尝试编写以下代码:
I am currently using Entity Framework 5 I've tried to code the following:
var result = context.Database.SqlQuery<Entity>("SELECT * FROM ref.Entity");但是出现以下错误:
Specified method is not supported.任何人都可以给我看解决这个问题的方法吗?
Can anyone show me a resolution to this issue?
堆栈跟踪
在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,Object []参数)\ r \ n在System.Data.Objects.ObjectContext.ExecuteStoreQuery [TElement](位于System.Data.Entity.Internal.InternalContext.ExecuteSqlQuery [TElement]中的(字符串commandText,Object []参数)\ r \ n,位于System.Data.Entity.Internal处的字符串sql,Object []参数)\ r \ n.InternalContext.ExecuteSqlQueryAsIEnumerable [TElement](字符串sql,Object []参数)\ r \ n在System.Data.Entity.Internal.InternalContext.ExecuteSqlQuery(类型elementType,字符串sql,Object []参数)\ r \ n在系统.Data.Entity.Internal.InternalSqlNonSetQuery.GetEnumerator()\ r \ n位于System.Data.Entity.Internal.InternalSqlQuery 1.GetEnumerator()\ r \ n位于System.Linq.SystemCore_EnumerableDebugView 1.get_Items()"
"at EFProviderWrapperToolkit.DbConnectionWrapper.CreateDbCommand()\r\n at System.Data.Common.DbConnection.CreateCommand()\r\n at System.Data.Objects.ObjectContext.CreateStoreCommand(String commandText, Object[] parameters)\r\n at System.Data.Objects.ObjectContext.ExecuteStoreQueryInternal[TElement](String commandText, String entitySetName, MergeOption mergeOption, Object[] parameters)\r\n at System.Data.Objects.ObjectContext.ExecuteStoreQuery[TElement](String commandText, Object[] parameters)\r\n at System.Data.Entity.Internal.InternalContext.ExecuteSqlQuery[TElement](String sql, Object[] parameters)\r\n at System.Data.Entity.Internal.InternalContext.ExecuteSqlQueryAsIEnumerable[TElement](String sql, Object[] parameters)\r\n at System.Data.Entity.Internal.InternalContext.ExecuteSqlQuery(Type elementType, String sql, Object[] parameters)\r\n at System.Data.Entity.Internal.InternalSqlNonSetQuery.GetEnumerator()\r\n at System.Data.Entity.Internal.InternalSqlQuery1.GetEnumerator()\r\n at System.Linq.SystemCore_EnumerableDebugView1.get_Items()"
推荐答案答案很简单.我不确定您是否拥有EFProviderWrapperToolkit的源代码,是否应该获取它并对其进行了研究.您会注意到,从DbConnection继承的DbConnectionWrapper覆盖了CreateDbCommand方法,但没有为其提供任何功能,而是引发了异常.
The answer is quite simple. I am not sure if you have the source code of EFProviderWrapperToolkit, you should get it and have a look at it. You will notice that DbConnectionWrapper, which inherits from DbConnection it overrides CreateDbCommand method but does not provide any functionality for it, instead it throws and exception.
/// <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(); }更多推荐
EF生成“不支持指定方法".SqlQuery中的错误
发布评论