c# - 将 reader.GetGuid(0) 与 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
推荐阅读
- python - 即使我有空白和空值,Django 图像也没有关联的文件
- jhipster - jhipster export-jdl 可以导出整个应用吗?
- javascript - ReferenceError: html2pdf 未定义 (JSPDF)
- javascript - 如何忘记它学到的东西或如何启动两个不同的神经网络?
- scala - 我应该使用什么构造来“拦截”对用户定义类的任何 getter/setter 调用?
- swift - 当与其他用户登录时,它仍然会从无处选择以前的用户 uuid
- git - 版本控制不会自动增加
- java - 无法动态更改主题
- php - 为什么约束消息的自动翻译在 twig/symfony 中失败?
- java - 简单问题:我在方法的参数中输入什么来输入我的数组列表?