从linq执行存储过程时,linq出错

本文关键字:linq 出错 存储过程 执行 | 更新日期: 2023-09-27 18:29:56

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

using (DBTestDataContext db = new DBTestDataContext())
{
     db.myStoreProcedure(name, address, hasValue); 
}

这里,hasValue是位类型,名称和地址是字符串类型,我在hasValue中的pass值为true/false,使其成为布尔类型。我的问题是在执行过程中,我得到了错误

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相关的问题吗???对于输入的任何数据,此代码都不起作用。如何修复

有人能帮我解决这个问题吗。提前谢谢。。

从linq执行存储过程时,linq出错

试着这样执行它。

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