1

您好我正在尝试使用如下实体框架执行存储过程。

var empid = new SqlParameter("@empid", "E001");
                    var dept = new SqlParameter("@dept", "D001");

                    var selectData = dbContext.ExecuteStoreQuery<EmpDO>("getEmployeeDetails @empid, @deptid", empid, deptid);

当我尝试运行我的应用程序时,出现以下错误。任何想法?

在此处输入图像描述

4

2 回答 2

2

这是错字吗?变量是dept,但函数调用中使用的变量是deptid。代码在下面更改。

var empid = new SqlParameter("@empid", "E001");
var dept = new SqlParameter("@dept", "D001");

var selectData = dbContext.ExecuteStoreQuery<EmpDO>("getEmployeeDetails @empid, @deptid", empid, dept);

我刚刚看了社区网站,他们有...

已知问题

不支持使用ObjectContext.ExecuteStoreCommandor等​​方法直接执行 store 命令 。ObjectContext.ExecuteStoreQuery但是,您可以使用如下代码从数据库连接创建 DbCommand:

using EFProviderWrapperToolkit;
...
context.Connection.GetStoreConnection().CreateCommand()
于 2013-09-11T19:10:58.977 回答
0

查看下面的链接,了解之前提出的问题。除非该方法现在在 EFPrivderWrapperToolkit 中实现,否则这应该可以回答您为什么会收到错误的问题。DbCommand 方法被工具包覆盖但未实现。

/// <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();
        }

类似的 StackOverflow 问题

于 2013-09-11T18:02:38.600 回答