c# - Database.ExecuteSqlCommand 始终返回 -1

标签 c# sql sql-server entity-framework stored-procedures

我有一个 EF 代码优先模型。它工作正常,但是当我尝试使用 Database.ExecuteSqlCommand 运行存储过程时,它总是返回 -1,无论我在存储过程中输入什么结果总是 -1

我的存储过程:

CREATE PROCEDURE [dbo].[Login_user] 
    @clientKey varchar(max)
AS
BEGIN
    SET NOCOUNT ON
    RETURN(0)
END

然后我像这样运行它:

return Database.ExecuteSqlCommand(EXEC [dbo].[Login_user] {0}", key);

我错过了什么吗?

顺便说一下,如果我从 SQL Server Management Studio 运行存储过程,它会返回 0

USE [lo9iMed]
GO
DECLARE @return_value int
EXEC    @return_value = [dbo].[Login_user]
    @clientKey = N'76F41F99-EA9E-4181-A6FB-579D23D3C2C0'

SELECT  'Return Value' = @return_value

提前致谢。

动物

最佳答案

您的存储过程中包含 SET NOCOUNT ON 指令(您可能使用了 SSMS 模板?)。这意味着它不会计算受您的命令影响的行。删除此行,您应该一切顺利! :)

关于c# - Database.ExecuteSqlCommand 始终返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21259771/

相关文章:

c# - 为什么 .NET 允许将 SerializableAttribute 应用于枚举?

c# - RestSharp JsonDeserializer 列表对象

mysql - 需要帮助优化 SQL 查询

SQL 窗口聚合函数隐藏重复值

asp.net - 不知道如何在sql session 状态中存储 session id

c# - API + SQL 存储的 Azure 配置

c# - 如何在基类上调用显式实现的接口(interface)方法

mysql - 获取文件中的最后一条记录

sql-server - 阻止 SQL Server Management Studio 向存储过程添加注释

c# - 使用 XmlSerializer 忽略外部元素