如何使用linq和C#获取存储过程的返回值?

时间:2015-06-29 05:27:13

标签: c# sql-server linq

有一个存储过程执行某些操作并返回1或0,如下所示。

<a href="LOCATION-OF-MY-FOLDER.zip">
    My Folder
</a>

使用linq我试图获得返回值。但我总是把输出作为-1。

以下是我的Linq代码:

CREATE PROCEDURE dbo.UserCheckUsername11
(
    @Username nvarchar(50)
)
AS
BEGIN
SET NOCOUNT ON;

IF Exists(SELECT UserID FROM User WHERE username =@Username) 
    return 1
ELSE
    return 0
END

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

只需将标量变量声明为SQL查询的输出参数,然后在代码中就可以通过以下方式检索其值: ```

using (PlanGenEntities3 myContext = new PlanGenEntities3())            
{                
   var outputParameter = new System.Data.Objects.ObjectParameter("OutputParameterName", typeof(int));                
   myContext.Entity_test_GetHoliday(outputParameter );                
   Console.WriteLine(outputParameter.Value);            
}

```

我想有办法在类似的庄园中访问SP的默认标量输出。

答案 1 :(得分:0)

如果他将它作为输出参数,它将自动显示为LINQ调用中正确相应数据类型的参考参数。

他真的不需要创建一个参数对象来包含它。