EF生成“不支持指定方法".SqlQuery中的错误 [英] EF generating "Specified method is not supported" error in SqlQuery

查看:81
本文介绍了EF生成“不支持指定方法".SqlQuery中的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我当前正在使用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中的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆