C# 在使用RAISEERROR引发错误的情况下,是否有方法不向客户端返回任何结果?
我正在使用实体框架调用SP。成功运行的SP返回一个字符串,因此我在EF映射中将返回类型设置为字符串。当执行时,它运行良好,我能够得到结果 如果出现错误,SP中会有一个代码以表的形式返回错误信息。因为我已经在EF中设置了字符串作为我的SP返回类型,所以每当我得到错误行作为结果时,我都会得到错误 为了解决这个问题,而不是发送错误行,我开始使用RAISEERROR(…)并在C代码中捕获异常 很少有SP在内部调用仍返回错误行的其他SP。因此,如果现在出现故障,我从内部SP得到一个错误结果,从外部SP得到一个raise错误。由于返回类型不匹配,这再次导致C#代码失败。令人惊讶的是,异常也被.Net忽略了 在SQL或EF中是否有一种方法可以在出错时忽略批处理的所有结果 这就是我提出错误的方式C# 在使用RAISEERROR引发错误的情况下,是否有方法不向客户端返回任何结果?,c#,sql-server,entity-framework,stored-procedures,C#,Sql Server,Entity Framework,Stored Procedures,我正在使用实体框架调用SP。成功运行的SP返回一个字符串,因此我在EF映射中将返回类型设置为字符串。当执行时,它运行良好,我能够得到结果 如果出现错误,SP中会有一个代码以表的形式返回错误信息。因为我已经在EF中设置了字符串作为我的SP返回类型,所以每当我得到错误行作为结果时,我都会得到错误 为了解决这个问题,而不是发送错误行,我开始使用RAISEERROR(…)并在C代码中捕获异常 很少有SP在内部调用仍返回错误行的其他SP。因此,如果现在出现故障,我从内部SP得到一个错误结果,从外部SP得到
RAISERROR ('%s <%s:%d:%s>', 16, -1, @ErrorMessageText, @inProcName, @inErrorID, @EventLogGUID)
RAISERROR(“%s”,16,-1,@ErrorMessageText,@inProcName,@inErrorID,@EventLogGUID)
SP name是ABC,它被添加到EF中,并由C#代码作为一个简单的DBContext函数调用。它应该抛出错误,我没有try-catch块 请出示你的密码。您的C代码中有try/catch块吗?您是否也可以显示您的RAISEERROR代码,RAISEERROR必须使用大于10的严重性才能在C#中捕获。尝试使用16作为严重性级别,因为这是一般错误最常见的级别。您可以在过程中尝试/捕获