NHibernateのかなり一般的な使用例だと思います。私はエンティティを作成し、ISession.Save()とそれに続くTransaction.Commit()を使用してエンティティを保存しようとします。この時点では、ユニーク/プライマリキーの制約などの違反が例外として私に届くことを期待しています。しかし、私が見ているのは単なるGenericADOExceptionです。これは、固有のものを保持するためにエンティティの別の名前を選択するようユーザーに依頼するようなものに対して、本物のDBの失敗を区別するのに役立ちません。NHibernateのDBからの制約違反の扱い
現時点では、私は制約を守らないためにまずクエリを実行するという醜い回避策を実装しました。これは単なる競合状態であり、私は実際にユーザーに "Oopsを見せたくありません。DBは面白いことをしました!おそらくもう一度試してみてください。"メッセージの種類。
これを修正するにはエレガントな方法がありますか?