繁体   English   中英

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

[英]How to get stored procedure return value using linq with C#?

具有执行某些操作并返回如下值的1或0的存储过程。

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

我使用linq尝试获取返回值。 但是我总是将输出设为-1。

以下是我的Linq代码:

 using (PlanGenEntities3 entity2 = new PlanGenEntities3())
 {                
    var result = entity2.Entity_test_GetHoliday();
    string output = result.ToString();
 }

如何解决呢?

只需将标量变量声明为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的默认标量输出。

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

他实际上不需要创建参数对象来包含该对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM