c# - DAPPER 参数类型错误,但没有抛出异常
问题描述
我有一些代码(使用 dapper)正在对我的数据库(ASE 12)执行查询。sql 有一个这样的 where 子句 where r.reg_id = @reg_id
现在在数据库中 reg_id 列是一种数字类型,长度为 6,Prec 18,比例为 0
在代码中,@reg_id 变量是一个 Int32,我希望在调用异步方法查询时会发生异常,但它永远不会出错......
问题: 我需要在 dapper 中设置一个设置/配置来获取数据类型错误以排除异常吗?
下面的代码将起作用,因为我将数据类型设置为十进制,但对于其他团队成员,我希望例外被踢出,以便他们知道问题是什么......有什么想法吗?
public async Task<IEnumerable<CentersForRegIdResponse>> Handle(CentersForRegIdQuery request, CancellationToken cancellationToken)
{
StringBuilder sql = new StringBuilder();
sql.Append(" SELECT c.ctr_id, RTRIM(LTRIM(c.ctr_shname)) AS ctr_shname, RTRIM(LTRIM(r.reg_name)) AS reg_name ");
sql.Append(" FROM center c, ");
sql.Append(" region r ");
sql.Append(" WHERE c.jcc_active = 'Y' and c.reg_id = r.reg_id and r.reg_id = @reg_id ");
sql.Append(" ORDER BY c.ctr_shname ");
string query = sql.ToString();
// custom mapping
_dapperTools.DapperCustomMapping<CentersForRegIdResponse>();
try
{
using (IDbConnection dbConnection = _dapperTools._aseconnection)
{
// example get list of rows by args
var arguments = new
{
@reg_id = request.RegId
};
IEnumerable<CentersForRegIdResponse> allRows =
await dbConnection.QueryAsync<CentersForRegIdResponse>(query, arguments);
return allRows;
}
}
catch (Exception ex)
{
_dapperTools.ReportSqlError(_log, query, ex);
return null;
}
}
public class CentersForRegIdQuery : IRequest<IEnumerable<CentersForRegIdResponse>>
{
public Decimal RegId { get; set; }
}
解决方案
推荐阅读
- vb.net - 如何通过单击 Vb.net 中的控件来引发面板的单击事件
- django - Django 保存大文件
- android - 如何将 ProgressBar 放在 EditText 内并将栏保持在其中?
- powershell - 使用“4”参数调用“TogglePoolOutOfService”的异常:“无法理解 SOAP 标头操作。”
- html - /search/ 处的 MultiValueDictKeyError,为什么会出现此错误?
- batch-file - (批量)直接在if语句中减去值?
- javascript - 图片用户 Firebase
- sockets - 保持活动套接字选项和“连接:保持活动”标题
- java - 更新聚合 java - mongodb - $(update)
- flutter - 如何在颤动中制作插槽卡?