質問: 私は数年前に出力パラメータを持ち、結果セットを返すストアドプロシージャを作成しました。私はEntityFrameworkでそれを使用しようとしています。最初に、インポートしたときに、生成されたコードは`ExecuteFunction()`を使用してプロシージャを実行していました。このメソッドを使用すると、 `ObjectParameter`オブジェクトには出力パラメータ値があります。次に、モデルでインポートされたプロシージャの定義を変更して、ストアドプロシージャの結果セットに一致するモデルで定義された複雑なタイプIを出力しました。生成されたコードは、 `ExecuteFunction()`を使用してプロシージャを実行するように変更され、プロシージャは結果セットを`IEnumerable` 。しかし、私の`ObjectParameter`オブジェクトには、プロシージャの出力ではなく、作成時のデフォルト値が設定されています。 私は複雑な型を返すように設定されていない、私のモデルで関数の2番目のマッピングを作成しました。私は現在、これらの2つの関数を介してストアドプロシージャを2回実行しています。最初の実行は複合型を返しません。 `ObjectParameter`値を設定します。これらの同じ`ObjectParameters`を2番目の関数に渡し、この2つの実行の最後に、結果データとストアドプロシージャの出力があります。 私は何か間違っているのですか?または、Entity Framework 6のこの制限がありますか?
回答: すべての結果が読み取られるまで出力パラメータは利用できないことが判明しました。 `.ToList()`を`ExecuteFunction()`呼び出しの傾向に追加して問題を修正しました。私はVisual Studioでメタデータをブラウズすることでそれを理解しました。関連するドキュメントは次のとおりです。 !ここに画像の説明を入力 私はmsdnの実際のドキュメントでこれが言及されていないと私はなぜわからない。