Я хотел бы выполнить хранимую процедуру с выходным параметром в Dot Net core 3.1. Я использую ExecuteSqlInterpolated
метод расширения класса DatabaseFacade
.
C# код, чтобы получить счет сотрудника.
string deptName="IT";
int? employeeCount = null;
Database.ExecuteSqlInterpolated($"exec dbo.usp_GetEmpCountByDept {deptName}, {employeeCount} out");
После выполнения employeeCount равен null
, а -1
- возвращаемому значению. Поскольку некоторые люди запрашивали хранимый pro c код для воспроизведения проблемы, я сохранил pro c, как показано ниже
CREATE PROCEDURE usp_GetEmpCountByDept
@Dept nvarchar(20),
@EmpCount int Output
AS
BEGIN
SELECT @EmpCount = COUNT(Id)
FROM [dbo].[Employees]
WHERE Department = @Dept
END