为什么 NpgsqlException.ConstraintName 属性 被删除了?
Why was NpgsqlException.ConstraintName property removed?
我想知道为什么 NpgsqlException 上的 .ConstraintName 属性 被删除了。我注意到升级到 npgsql 3.1.8 后它不再存在。 (好久没升级npgsql了)
我发现 .ConstraintName 非常有用,因为我有相当多的代码依赖于约束名称(例如,我使用 .ConstraintName 向用户生成 "non technical" 错误消息。)
这是否意味着我每次都需要从 NpgsqlException.Message 或 NpgsqlException.BaseMessage 中手动解析约束名称,或者是否有另一种方法可以从中获取我不知道的约束名称?
ConstraintName 未删除。在 Npgsql 3.1 中,PostgreSQL 引发的错误被抛出为 PostgresException
,而客户端错误(例如网络)被抛出为 NpgsqlException
(这也是 PostgresException
的超类)。如果您捕获 PostgresException
而不是 NpgsqlException
,您将找到所有错误属性,例如 ConstraintName.
这在 migration notes 中有记录。
我想知道为什么 NpgsqlException 上的 .ConstraintName 属性 被删除了。我注意到升级到 npgsql 3.1.8 后它不再存在。 (好久没升级npgsql了)
我发现 .ConstraintName 非常有用,因为我有相当多的代码依赖于约束名称(例如,我使用 .ConstraintName 向用户生成 "non technical" 错误消息。)
这是否意味着我每次都需要从 NpgsqlException.Message 或 NpgsqlException.BaseMessage 中手动解析约束名称,或者是否有另一种方法可以从中获取我不知道的约束名称?
ConstraintName 未删除。在 Npgsql 3.1 中,PostgreSQL 引发的错误被抛出为 PostgresException
,而客户端错误(例如网络)被抛出为 NpgsqlException
(这也是 PostgresException
的超类)。如果您捕获 PostgresException
而不是 NpgsqlException
,您将找到所有错误属性,例如 ConstraintName.
这在 migration notes 中有记录。