1

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

乾杯。

ファン。

4

0 に答える 0