您好我正在尝试使用如下的实体框架执行存储过程。
var empid = new SqlParameter("@empid", "E001");
var dept = new SqlParameter("@dept", "D001");
var selectData = dbContext.ExecuteStoreQuery<EmpDO>("getEmployeeDetails @empid, @deptid", empid, deptid);
当我尝试运行我的应用程序时,我遇到了错误。有什么想法吗?
答案 0 :(得分: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);
我只看了community site,他们有......
已知问题
使用诸如的方法直接执行存储命令
ObjectContext.ExecuteStoreCommand
或ObjectContext.ExecuteStoreQuery
不受支持。但是,您可以从中创建一个DbCommand 使用如下代码的数据库连接:
using EFProviderWrapperToolkit;
...
context.Connection.GetStoreConnection().CreateCommand()
答案 1 :(得分: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();
}