context.Database
を使用して、レコードを挿入してIDを返すストアドプロシージャを実行しようとしています。私は、出力パラメータ、選択、または戻り値のいずれかを使用して私のprocの作品を知っていますが、ExecuteSqlCommand
またはSqlQuery<int>
を返すことができません。 、EF 4.1コードファースト:ストアドプロシージャを実行してIDENTを返します
INSERT INTO TableA (FieldA, FieldB)
RETURN SCOPE_IDENTITY
をリターンしてストアドプロシージャを使用して
私はSSMS
DECLARE @return_value int
EXEC @return_value = spInsertRecord
SELECT 'Return Value' = @return_value
から1010966
の戻り値を参照してくださいしかし、私は自分のアプリケーションで行われているものは何も有効な値を返しません。
Int64 result = context.Database.ExecuteSqlCommand
は常に3を返し、私はSqlQuery<int>
を使用するときに小数点を参照キャストエラーが発生します。 私は、出力パラメータを持つ試みをしたが、正しく実行するコードを取得することができませんでしたので、保存中に含まれるロジックを置き換えるためにモデルを作成するSELECT SCOPE_IDENTITY
またはRETURN SCOPE_IDENTITY
ショートのいずれかを消費するアプリに焦点を当てていますプロシージャでは、Stored Procとアプリケーションレベルの両方の値を返すためのすべての提案を公開しています。