C# 如何在实体框架中从存储过程中获取返回值?
我有一个存储过程,它将新记录从服务插入数据库或更新现有记录。 但如果插入/更新成功,我需要显示true;如果插入/更新失败,我需要显示false作为响应 因此,在我的存储过程中,从EF调用C# 如何在实体框架中从存储过程中获取返回值?,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,我有一个存储过程,它将新记录从服务插入数据库或更新现有记录。 但如果插入/更新成功,我需要显示true;如果插入/更新失败,我需要显示false作为响应 因此,在我的存储过程中,从EF调用 result = database.usp_sp_name(parameters); if (result==0) return true; else return false; 我尝试了上面的代码,因为我在MSDN网站上读到,如果成功的交易意味着,结果将是0。但即使是插入记录或更新记录,
result = database.usp_sp_name(parameters);
if (result==0)
return true;
else
return false;
我尝试了上面的代码,因为我在MSDN网站上读到,如果成功的交易意味着,结果将是0。但即使是插入记录或更新记录,我也会得到错误的响应。在您的代码中,创建一个bool,它将保存storedproc的结果,如果storedproc的结果为1,则返回true。否则就错了
bool result = _entites.StoredProc(parameters);
return (result == 1) ? true: false;
但在存储过程中
您应该创建一个返回如下值的过程
CREATE PROCEDURE [dbo].[StoredProc]
@parameter
AS
BEGIN
DECLARE @result int
DECLARE @param nvarchar(255)
SET @param = @parameter
INSERT INTO (field1) VALUES (@param)
IF @@ERROR = 0
SET @result = 1
ELSE
SET @result = 0
RETURN @result
@@如果T-SQl语句未遇到错误,则返回0。您可以使用它将结果设置为1或0。请参阅此链接以了解更多信息。这应该有效。如果从Management Studio调用该SP,它将返回0?您可以在实体框架中调试SP的代码,在那里您可以看到如何调用它以及它返回什么。如果它不工作,您至少应该能够找到失败的确切点。存储的进程是否在进程结束时返回值?否。我的意思是返回存储过程中默认的\u值参数。您试过了吗?您应该包括执行存储过程的代码。目前还不清楚这与实体框架的关系。