首页 > 解决方案 > 使用实体框架和原始 SQL 进行存储过程和异常处理

问题描述

ExecuteSqlRawAsync我可以使用或在 EF中成功使用存储过程FromSqlRaw,但我希望能够在存储过程使用ERROR_SEVERITY().

例如,我在存储过程中有一个插入语句,并且Try Catch在过程中使用了一个。在我使用的捕获中,

SELECT 
    ERROR_SEVERITY() AS ErrorSeverity, 
    ERROR_PROCEDURE() AS ErrorProcedure,
    ERROR_MESSAGE() AS ErrorMessage;

在 C# 中,我ExecuteSqlRawAsync用来执行该过程,如果出现 SQL 错误,我不会得到严重性代码,因为ExecuteSqlRawAsync. FromSqlRaw即使对于插入,我是否需要使用来获取返回值?

我想在 C# 端捕获异常。

标签: c#entity-framework-core

解决方案


Jeroen 的解决方案是正确的。我从存储过程中删除了错误处理,当然我现在在我的 C# 代码中得到了一个我想看到的 SqlException。


推荐阅读