Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从linq执行存储过程时从linq出错_C#_Sql Server_Linq_Stored Procedures - Fatal编程技术网

C# 从linq执行存储过程时从linq出错

C# 从linq执行存储过程时从linq出错,c#,sql-server,linq,stored-procedures,C#,Sql Server,Linq,Stored Procedures,我需要执行从linq到SQL的SQL Server存储过程。我在数据上下文中添加了存储过程,并在类中使用了该上下文。下面是我从c#类调用sql server存储过程的代码: 这里,hasValue是位类型,name和address是字符串类型,hasValue中的pass值为true/false,使其成为bool类型。我的问题是,当程序执行时,我得到了错误 Could not translate expression 'value (DBTestDataContext.myStoreProced

我需要执行从linq到SQL的SQL Server存储过程。我在数据上下文中添加了存储过程,并在类中使用了该上下文。下面是我从c#类调用sql server存储过程的代码:

这里,hasValue是位类型,name和address是字符串类型,hasValue中的pass值为true/false,使其成为bool类型。我的问题是,当程序执行时,我得到了错误

Could not translate expression 'value (DBTestDataContext.myStoreProcedure("abc","xyz",true)) into SQL and could not treat it as a local expression.
但是,它在sql server中成功执行:

EXEC dbo.myStoreProcedure @name="abc", @address = "xyz", @hasValue = true
它工作得很好。这是与db.myStoreProcedure相关的问题吗???对于输入的任何数据,此代码无效。怎么能修好呢


谁能帮我解决这个问题吗。提前感谢。

试着像这样执行它

var param1 = new SqlParameter("@param1", 1);
var param2 = new SqlParameter("@param2", 2);

var  results = context.Database.SqlQuery<StronglyTypedObject>
               ("SPName @param1, @param2",param1, param2).ToList()
var param1=新的SqlParameter(“@param1”,1);
var param2=新的SqlParameter(“@param2”,2);
var results=context.Database.SqlQuery
(“SPName@param1,@param2”,param1,param2).ToList()

StronglyTypedObject
属性必须与SP返回的字段匹配才能正确绑定
var param1 = new SqlParameter("@param1", 1);
var param2 = new SqlParameter("@param2", 2);

var  results = context.Database.SqlQuery<StronglyTypedObject>
               ("SPName @param1, @param2",param1, param2).ToList()