C# 将reader.GetGuid(0)与Postgres一起使用时出现奇怪错误

C# 将reader.GetGuid(0)与Postgres一起使用时出现奇怪错误,c#,postgresql,npgsql,C#,Postgresql,Npgsql,我的MySQL版本中有以下语句: Guid id = reader.GetGuid(0); 它是有效的。我在PostgreSQL版本的其他方法中也有相同的语句,它们也可以工作。然而,在一个PostgreSQL方法中,我不得不将其替换为以下内容,以使其正常工作: string idText = reader.GetString(0); Guid id = Guid.Parse(idText); 这是Npgsql的一个bug吗 编辑:引发此错误: {System.InvalidCastExcep

我的MySQL版本中有以下语句:

Guid id = reader.GetGuid(0);
它是有效的。我在PostgreSQL版本的其他方法中也有相同的语句,它们也可以工作。然而,在一个PostgreSQL方法中,我不得不将其替换为以下内容,以使其正常工作:

string idText = reader.GetString(0);
Guid id = Guid.Parse(idText);
这是Npgsql的一个bug吗

编辑:引发此错误:

{System.InvalidCastException: Can't cast database type character to Guid
   at Npgsql.NpgsqlDefaultDataReader.GetFieldValue[T](Int32 column)

我无法测试,但Npgsql希望该列为
uuid
,并且可能不支持从文本进行隐式转换。您可以在此处阅读有关这些类型映射的更多信息:

如果使用GetGuid(),会发生什么?它会引发异常吗?还是它给出了错误的值?或列类型是什么?注意:guid的字节顺序是众所周知的problematic@MarcGravell见我的答复在上面的编辑