質問: dbConnection.QueryMultiple("myProcName", parameters, commandType: CommandType.StoredProcedure); ``` このコードは、まったくパラメーターを渡さなかったかのように動作します。これは、DapperのDynamicParametersクラスのAddParameters()メソッドが、 '@'プレフィックス(または他のDBMS ' - MSDNの「パラメータプレースホルダの使用」を参照.aspx) )を削除するパラメータ名でClean()を呼び出しているためです。 接頭辞「@」がなければ、Sybaseは引数を突き合わせることができません。 逆に、Clean()の呼び出しをコメントアウトすると、クエリから正しい結果が得られます。 プレフィックス '@'を削除する根拠は何ですか?
回答: 簡単に言うと、大量のコードを単純化し、1つのシナリオだけを心配する必要があるかどうかを確認します。他のすべてのRDBMSでは、オブジェクトのプロパティを使用してパラメータ名を指定すると、それは無駄なく同等に機能します。これが特定のRDBMSで動作しない場合、私はそれを修正する方法を調べることができると確信しています。恐らく、DynamicParametersを信頼して、それを掃除するだけではないでしょう。