DynamicParameterのReturnValueオプションを使用して、長い主キーをC#に戻すためにSCOPE_IDENTITYを使用しようとしています。ここでDapperが「指定されたキャストは無効です。」 ReturnValueパラメータ値のため
はDapperのウェブサイトからサンプルコードです:
var p = new DynamicParameters();
p.Add("@a", 11);
p.Add("@b", dbType: DbType.Int32, direction: ParameterDirection.Output);
p.Add("@c", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue);
cnn.Execute("spMagicProc", p, commandType: commandType.StoredProcedure);
int b = p.Get<int>("@b");
int c = p.Get<int>("@c");
代わりにint型を返すので、私は私の主キーフィールドとして次のことを行うことを好む私のPROCで
var p = new DynamicParameters();
p.Add("@a", 11);
p.Add("@b", dbType: DbType.Int32, direction: ParameterDirection.Output);
p.Add("@c", dbType: DbType.Int64, direction: ParameterDirection.ReturnValue);
cnn.Execute("spMagicProc", p, commandType: commandType.StoredProcedure);
int b = p.Get<int>("@b");
int c = p.Get<long>("@c");
をBIGINTする必要があります私は "RETURN SCOPE_IDENTITY()"を使用しています。
ただし、これを行うと「指定されたキャストは無効です」と表示されます。例外。
:このdapper.rainbowはありますか?また、あなたはフィールドが "bigint"だと言います - おそらく今は.net側を取っています。ここでは、BigIntegerを意味しますか?それともInt64という言葉が長いのですか? SQLサーバーのbigintは、C# –
のDapperマイクロオーミック(拡張)で「long」にマップされます。私がbigintを参照するとき、私は保存しているテーブルの主キーフィールドについて話しています。私が長い間参照しているのは、.net変数です。書きたいと思っています。 – user1790300