我的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)
答案 0 :(得分:0)
我无法测试,但是Npgsql希望该列为uuid
,并且可能不支持从文本进行隐式转换。您可以在这里阅读有关这些类型映射的更多信息:https://www.npgsql.org/doc/types/basic.html