2 つの可能なシナリオをカバーするために、Entity Framework 4.1 を使用して、以下に添付されているストアド プロシージャを呼び出そうとしています。
exec TEST_SP_OUTPUT 1 ACTIONTYPE テーブルと @Success = 1 からデータセットを返す必要があります
exec TEST_SP_OUTPUT 0 データセットが返されず、@Success = 0
CREATE PROCEDURE [dbo].[TEST_SP_OUTPUT] ( @Id int, @Success int OUTPUT ) AS BEGIN SET NOCOUNT ON; IF (@Id = 1) BEGIN SELECT ActionName, ActionType FROM ACTIONTYPE SET @Success = 1; END ELSE SET @Success = 0; END
問題は、Entity Framework モデル内で単一の複合型を使用して両方の実行を処理できるかということです。 シナリオ「exec TEST_SP_OUTPUT 0」はデータセットや列を返さないことに注意してください。
私が間違っている場合は修正してください。ただし、2番目のシナリオでダミーの結果を設定することで解決できる可能性があります。
CREATE PROCEDURE [dbo].[TEST_SP_OUTPUT]
(
@Id int,
@Success int OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
IF (@Id = 1)
BEGIN
SELECT ActionName, ActionType FROM ACTIONTYPE
SET @Success = 1;
END
ELSE
BEGIN
SELECT '' as ActionName, '' as ActionType
SET @Success = 0;
END
END
乾杯。
ファン。