在 Postgres 中使用 reader.GetGuid(0) 时出现奇怪的错误
Weird error with using reader.GetGuid(0) with Postgres
我的 MySQL 版本中有这样的声明:
Guid id = reader.GetGuid(0);
并且有效。我在我的 PostgreSQL 版本的其他方法中有相同的语句,它们也有效。但是,在一种 PostgreSQL 方法中,我必须将其替换为以下方法才能使其工作:
string idText = reader.GetString(0);
Guid id = Guid.Parse(idText);
这是 Npgsql 的错误吗?
编辑:抛出此错误:
{System.InvalidCastException: Can't cast database type character to Guid
at Npgsql.NpgsqlDefaultDataReader.GetFieldValue[T](Int32 column)
我无法测试,但 Npgsql 期望该列为 uuid
并且可能不支持从文本的隐式转换。您可以在此处阅读有关这些类型映射的更多信息:https://www.npgsql.org/doc/types/basic.html
我的 MySQL 版本中有这样的声明:
Guid id = reader.GetGuid(0);
并且有效。我在我的 PostgreSQL 版本的其他方法中有相同的语句,它们也有效。但是,在一种 PostgreSQL 方法中,我必须将其替换为以下方法才能使其工作:
string idText = reader.GetString(0);
Guid id = Guid.Parse(idText);
这是 Npgsql 的错误吗?
编辑:抛出此错误:
{System.InvalidCastException: Can't cast database type character to Guid
at Npgsql.NpgsqlDefaultDataReader.GetFieldValue[T](Int32 column)
我无法测试,但 Npgsql 期望该列为 uuid
并且可能不支持从文本的隐式转换。您可以在此处阅读有关这些类型映射的更多信息:https://www.npgsql.org/doc/types/basic.html