ObjectContext
ExecuteStoreQuery
ストアド プロシージャが返す結果セットを取得できるように、メソッドを使用して呼び出しているストアド プロシージャがあります。
try/catch ブロックの中にありますが、ストアド プロシージャが次のエラーを返しても、catch ブロックには入りません。
このタイプのエラーをトラップするにはどうすればよいですか?
または、ストアド プロシージャを実行して結果セットを取得する別の方法はありますか?
SQL で実行した場合のエラー:
メッセージ 50000、レベル 16、状態 2、プロシージャ ComputeCharges、行 6440
料金の計算中に次のエラーが発生しました:
エラー番号: 515、行番号: 5867
エラー メッセージ: 値 NULL を列 'TransactionAmount'、テーブル 'Transactions' に挿入できません。列はヌルを許可しません。INSERT は失敗します。
呼び出しコード:
using (DbContext dbContext = GetDbContext())
{
using (ObjectContext objContext = ((System.Data.Entity.Infrastructure.IObjectContextAdapter)dbContext).ObjectContext)
{
try
{
IEnumerable<ResultSet> results = objContext.ExecuteStoreQuery<ResultSet>(sqlString).ToList();
}
catch (Exception e)
{
EventLogger.LogException(e, title: "An error occurred while computing charges.", silent: false);
}
}
}