2

OrmLite を使用して、オプションのパラメーターを持つストアド プロシージャを呼び出しています。

_dbConnection.SqlList<CustomerDTO>("sp_getcustomers @name", new { name = request.Name });

このステートメントは、@name をパラメーターとして使用して動的 SQL ステートメントを生成しています。しかし、このパラメーターに null を渡す方法がわかりません。DBNull.Value を使用してみましたが、機能しません。例外 :指定されたキーがディクショナリに存在しませんでした。

_dbConnection.SqlList<CustomerDTO>("sp_getcustomers @name", new { name = request.Name ??  System.Data.SqlTypes.SqlString.Null});
4

3 に答える 3

3

OrmLite の APIを効果的に利用する方法の例については、これらのSqlProviderTestsSql*を参照してください。

それを呼び出す正しい方法は、次のようなものです。

Db.SqlList<CustomerDTO>("EXEC sp_getcustomers @Name", new { request.Name });
于 2013-03-19T14:25:32.430 に答える
1

Ormlite には、SP (SqlServer 用) に相当する C# 関数を生成するためのT4 ファイルがあります。生成されたファイルでは、null 値を渡すことができます。

于 2013-09-04T07:44:06.283 に答える