SQL Server プロバイダーで ServiceStack.OrmLite を使用しています。
以下のコードフラグメントを考えると:
SQL Server 例外を取得するためのベスト プラクティスはありますか?
レコードが db.Single 呼び出しの結果にあるかどうかを知る最良の方法は何ですか? db.Single が無効なメッセージ ID (つまり、データ セットにないメッセージ ID) で呼び出されると、例外が発生するようです。メッセージ ID がデータベースに存在する場合、呼び出しは例外なく戻ります。try catch ブロックなしでこれを行う方法はありますか?
try/catch ブロックなしで呼び出しが行われた場合の例外:
ArgumentNullException 値を null にすることはできません。
パラメータ名: 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;
}