使用linq调用存储过程

时间:2016-04-27 22:22:22

标签: c# entity-framework linq stored-procedures azure-sql-database

我尝试调用这样的存储过程:

var param1 = new SqlParameter("d", SqlDbType.NVarChar);
param1.Value = d;
var param2 = new SqlParameter("c", SqlDbType.NVarChar);
param2.Value = c;
var param3 = new SqlParameter("b", SqlDbType.NVarChar);
param3.Value = b;
var param4 = new SqlParameter("a", SqlDbType.BigInt);
param4.Value = a;


((IObjectContextAdapter)this).ObjectContext.ExecuteStoreCommand("schema.stored_name", param1, param2, param3, param4);

但抛出过程或函数'stored_name'需要参数'@d',这是未提供的。

我也创建了数组设定值,但是剂量工作,任何想法????

1 个答案:

答案 0 :(得分:0)

您可以尝试在命令文本中声明参数名称:

((IObjectContextAdapter)this).ObjectContext
   .ExecuteStoreCommand("schema.stored_name @d, @c, @b, @a", param1, param2, param3, param4);