У меня такая же проблема раньше.Основная причина, по моему мнению, состоит в том, что структура сущностей имеет ошибку в том случае, если пользовательская хранимая процедура имеет выходной параметр и возвращает набор результатов.Например:
ALTER PROCEDURE [dbo].[SearchTest]
(
@RowTotal INT = 0 OUTPUT,
@RowCount INT = 0 OUTPUT
)
AS
BEGIN
SET NOCOUNT ON
SELECT * FROM SomeThing
SELECT @RowTotal = 1233, @RowCount = 5343
END
Однако, если вы измените пользовательскую хранимую процедуру следующим образом, вы можете получить выходные параметры
ALTER PROCEDURE [dbo].[SearchTest]
(
@RowTotal INT = 0 OUTPUT,
@RowCount INT = 0 OUTPUT
)
AS
BEGIN
SET NOCOUNT ON
SELECT @RowTotal = 1233, @RowCount = 5343
END
Обойти это можно следующим образом:
ALTER PROCEDURE [dbo].[SearchTest]
AS
BEGIN
DECLARE @RowTotal INT, @RowCount INT
SET NOCOUNT ON
SELECT @RowTotal = 1233, @RowCount = 5343
SELECT @RowTotal AS RowTotal, @RowCount AS RowCount, s.*
FROM SomeThing s
END
Если у кого-нибудь есть лучшее решение, пожалуйста, скажите мне