2016-10-20 18 views
0

なぜNpgsqlExceptionの.ConstraintNameプロパティが削除されたのだろうかと思います。私はそれがもはやnpgsql 3.1.8にアップグレードした後に存在しないことに気付きました。 (私は長い間、npgsqlをアップグレードしていませんでした)NpgsqlException.ConstraintNameプロパティが削除されたのはなぜですか?

私は制約名に依存するかなりのコードを持っていたので、ConstraintNameを非常に参考にしました(例: "Non technical "エラーメッセージが表示されます)

これは、NpgsqlException.MessageまたはNpgsqlException.BaseMessageから毎回制約名を手動で解析する必要があることを意味しますか、または私が認識していないConstraintNameを取得する別の方法がありますか?

答えて

2

ConstraintNameが削除されませんでした。 Npgsql 3.1では、PostgreSQLによって生成されたエラーはPostgresExceptionとしてスローされ、クライアント側エラー(ネットワークなど)はNpgsqlException(これはPostgresExceptionのスーパークラスでもあります)としてスローされます。 NpgsqlExceptionの代わりにPostgresExceptionをキャッチすると、ConstraintNameなどのすべてのエラープロパティーが見つかります。

これはmigration notesに記載されています。

+0

oh cool!情報をありがとうございます。私は約12-16のリリースだったと思うので、これを見つけるのに長い時間がかかりました。 – Skyguard

+0

クールな答え、私も失われた – docesam

関連する問題