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 有一个T4 文件来为 SP(用于 SqlServer)生成 C# 函数等价物;生成的文件允许您传递空值。

于 2013-09-04T07:44:06.283 回答
0

在提交 e6ef83a中添加了对存储过程中空参数的支持,并与 ServiceStack.OrmLite 的3.9.56 版本一起发布。

于 2013-07-21T14:35:32.033 回答