我将 ServiceStack.OrmLite 与 SQL Server 提供程序一起使用。
给定下面的代码片段:
是否有检索 SQL Server 异常的最佳实践?
知道一条记录是否在 db.Single 调用的结果中的最佳方法是什么?当使用无效的消息 ID(即不在数据集中的消息 ID)调用 db.Single 时,似乎出现异常。如果数据库中存在消息 ID,则调用无异常返回。有没有办法在没有 try catch 块的情况下做到这一点?
如果在没有 try/catch 块的情况下进行调用,则会出现异常:
ArgumentNullException 值不能为空。
参数名称:ENSMessageEntry: 'ID = 25' 不存在
这是我的代码:
public ENSStatusResponse GetMessageStatus(int messageID)
{
var statusResponse = new ENSStatusResponse();
using (var db = DBConnectionFactory.OpenDbConnection())
{
try
{
ENSMessageEntry mes = db.Single<ENSMessageEntry>("ID = " + messageID);
statusResponse.ENSMessageStatus = mes.Id;
}
catch
{
statusResponse.ENSMessageStatus = 0;
}
}
return statusResponse;
}