私のアプリケーション(VS2015、C#、WebForm)では、以前は(ローカルとプロダクションサーバーの両方で)完全に正常に動作していましたが、エラー:ObjectParameterがストアドプロシージャの出力値を取得しません
CREATE PROCEDURE [dbo].[StoredProcedure_Item_Insert]
@ItemText VARCHAR(250),
@InsertedID INT OUTPUT
INSERT INTO [dbo].[Item] ([ItemText])
VALUES (@ItemText -- ItemText - varchar(250)
);
SET @InsertedID = SCOPE_IDENTITY();
SELECT @InsertedID AS InsertedID;
リポジトリコード:
public int InsertItem(string itemText)
{
ObjectParameter InsertedId = new ObjectParameter("InsertedID", -1);
_db.StoredProcedure_Item_insert(feeText, InsertedId);
return (int)InsertedId.Value;
}
このストアドプロシージャの関数インポートの項目を挿入する
ストアドプロシージャ私はGet Column Information button
をクリックすると、ファイル
Returns a Collection Of Scalars: Int32
はそして、私は
Name: InsertedID
EDM Type: Int32
Db Type: int
Nullable: true
唯一の変化は、私はので、私はVS2015を再インストールしなければならなかった私のマシンでは、Windows 10にアップグレードされたことであると考えることができます作られ得ます。 - MappableType ' - > 'DeclaringMethod'
InsertedId.Value
は常に-1- エラーメッセージ「> InsertedId`' である:私が見つけ/試した何
DeclaringMethod
の誤差はを言う((System.RuntimeType)InsertedId.MappableType).DeclaringMethodはタイプSystem.InvalidOperationExceptionがシステムの例外をスローしました。 Reflection.MethodBase {System.InvalidOperationExceptionが}は
DeclaringMethod.Message
メソッドのみType.IsGenericParameterが真であるタイプで呼び出すことができると言います。
は、ストアドプロシージャで
OUT
とOUTPUT
を試みた- しようとしました
SELECT @InsertedID
とRETURN @InsertedID
私が把握しようとしてきた二番目のパラメータ
ため
new ObjectParameter("InsertedID", typeof(Int32))
の代わり-1
何今は何時間も続いていますが、私は完全に立ち往生しています...