diff --git a/src/NHibernate.Test/ExceptionsTest/PostgresExceptionConverterExample.cs b/src/NHibernate.Test/ExceptionsTest/PostgresExceptionConverterExample.cs
index e4142c32f7f..ee794f0b9de 100644
--- a/src/NHibernate.Test/ExceptionsTest/PostgresExceptionConverterExample.cs
+++ b/src/NHibernate.Test/ExceptionsTest/PostgresExceptionConverterExample.cs
@@ -1,6 +1,6 @@
using System;
-using System.Data.Common;
using NHibernate.Exceptions;
+using Npgsql;
namespace NHibernate.Test.ExceptionsTest
{
@@ -10,23 +10,23 @@ public class PostgresExceptionConverterExample : ISQLExceptionConverter
public Exception Convert(AdoExceptionContextInfo exInfo)
{
- var sqle = ADOExceptionHelper.ExtractDbException(exInfo.SqlException) as DbException;
- if (sqle != null)
+ if (ADOExceptionHelper.ExtractDbException(exInfo.SqlException) is PostgresException pge)
{
- string code = (string)sqle.GetType().GetProperty("Code").GetValue(sqle, null);
-
+ string code = pge.SqlState;
if (code == "23503")
{
- return new ConstraintViolationException(exInfo.Message, sqle.InnerException, exInfo.Sql, null);
+ return new ConstraintViolationException(exInfo.Message, pge.InnerException, exInfo.Sql, null);
}
+
if (code == "42P01")
{
- return new SQLGrammarException(exInfo.Message, sqle.InnerException, exInfo.Sql);
+ return new SQLGrammarException(exInfo.Message, pge.InnerException, exInfo.Sql);
}
}
+
return SQLStateConverter.HandledNonSpecificException(exInfo.SqlException, exInfo.Message, exInfo.Sql);
}
#endregion
}
-}
\ No newline at end of file
+}