4

Entity Framework を使用しています。Customer というエンティティ オブジェクトを作成し、ストアド プロシージャを追加しました。

私のストアド プロシージャには、出力パラメータで文字列を返す別の 2 つのストアド プロシージャが含まれています。そして、両方のストアド プロシージャの出力パラメータ値をメイン ストアド プロシージャに連結します。

メイン ストアド プロシージャは、結果の文字列を出力パラメーターにも返します。

また、連結された文字列を返すメイン ストアド プロシージャの関数インポートも作成しました。

アプリケーションを実行すると、「ストア データ プロバイダーから返されたデータ リーダーには、要求されたクエリに対して十分な列がありません」というメッセージが表示されます。

1 番目と 2 番目の手順に select ステートメントがありません。メイン ストアド プロシージャの出力パラメータ値を返す方法を教えてください。

詳細については、以下をご覧ください。

Create Procedure MainProcedure
@Id int,
@MainResult nvarchar(max) output
AS
Begin
declare @firstResult nvarchar(max)
declare @secondResult nVarchar(max)
declare @MainResult nVarchar(max)

Exec FirstSP @Id,@firstResult Output
Exec SecondSP @Id,@secondResult Output

Set @MainResult=@firstResult+@secondResult

End

エンティティコードは次のようになります

System.Data.Objects.ObjectResult<string> resultList = null;
     var OutputParamter =new ObjectParameter("MainResult",typeof(string));
        resultList = ent.MainProcedure(ID, OutputParamter);
4

1 に答える 1