当尝试设置从 MySQL 返回的布尔值时,Dapper 抛出无效的强制转换异常

2024-03-24

我有这门课

public class User
{
    public int UserId { get; set; }
    public string UserName { get; set; }
    public bool IsValidated { get; set; }
}

我使用 dapper 用这个 sql 填充它:

var users = connection.Query<User>("SELECT userId, userName, TRUE `IsValidated` FROM user WHERE [...]").ToList();

当我运行这个时,我收到此错误:

解析第 2 列时出错(IsValidated=1 - Int64)

我已经完成了简洁的代码,sqldatareader 说该列是int64,所以看起来 .NET Mysql Connector 认为“TRUE”(在 MYSQL 中应该是tinyint)是一个int64.

我确实找到了这个错误报告 http://bugs.mysql.com/bug.php?id=13590其中表示对于所有版本的 INT(INT、BIGINT、TINYINT、SMALLINT、MEDIUMINT),.NET 连接器返回 int64。然而,这是 MySQL 5.0 中的一个错误,已修复,我正在使用 5.5。我有 mysql.data 版本 6.4.3.0

我通过将其全部选择到临时表中来“解决”这个问题IsValidated列声明为BOOL,但这是一个糟糕的解决方案。


我不熟悉 Drapper,但由于 MySQL 会将任何布尔值作为 int (通常是tinyint)返回,一种选择是将您的类更改为以下内容:

public class User  
{  
    public int UserId { get; set; }  
    public string UserName { get; set; }
    private bool _isValidated = false;
    public bool IsValidated
    { 
        get{ return _isValidated;}
        set{ _isValidated = Boolean.Parse(value); }
   }  
}  

或者尝试在 sql 中进行强制转换

cast(TRUE `IsValidated` as bit)

我没试过,但至少你有一个建议。一切顺利。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当尝试设置从 MySQL 返回的布尔值时,Dapper 抛出无效的强制转换异常 的相关文章

  • 使用 avg 和 group by 进行 SQL 查询

    我在为 MySQL 编写 SQL 查询时遇到一些问题 我有一个具有以下结构的表 mysql gt select id pass val from data r1 limit 10 id pass val DA02959106 5 00000
  • mysqli_query() 需要至少 2 个参数,其中 1 个参数在? [复制]

    这个问题在这里已经有答案了 每次运行这个 php ini 时 我都会遇到同样的 3 个错误 我不知道我做错了什么 有人可以帮忙吗 以下是错误 2014 年 5 月 5 日 19 20 50 美洲 芝加哥 PHP 警告 mysqli quer
  • 未捕获的类型错误:$.ajax 不是函数

    我正在制作一个带有排行榜表的小型游戏项目 我正在尝试使用 jQuery ajax 和 PHP 从 mysql 数据库获取排行榜以显示 但它给了我一条错误消息 我的语法看起来不错 所以我不确定问题是什么 leader btn click fu
  • mysql中相同字符集和排序规则的varchar和nvarchar有什么区别

    谁能告诉我具有相同字符集和整理的 varchar 和 nvarchar 之间有什么区别 例子 varchar CHARACTER SET utf8mb4 COLLATE utf8mb4 unicode ci and nvarchar CHA
  • Dapper MySQL 返回值

    我在 ASP net Identity 项目中使用 dapper 和 MySql 时遇到问题 我想将用户插入到表 users 中 并希望从这次插入中返回自动生成的 id 但我收到语法错误 我不知道为什么 这是我的方法插入代码 public
  • 将一段文本保存到mysql

    我正在使用 php 和 mysql 做一个项目 我对此很陌生 现在我必须将一段文本存储到我的数据库中 在表中 对于列 I tried varchar 5000 创建表时但它不允许我 所以请给我一个解决方案 你的 mysql 字段类型应该 T
  • MySQL GROUP 通过还是使用 PHP?

    我有一个看起来很简单的问题 但我只是想问你如何解决它 在 MySQL 表中有以下结构 provider artist a 1 a 2 a 3 b 4 现在需要在 HTML 中回显一个列表 例如 provider a 1 2 3 provid
  • 字符集和排序规则到底是什么意思?

    我可以阅读MySQL文档而且非常清楚 但是 如何决定使用哪种字符集呢 校对对什么数据有影响 我要求解释这两者以及如何选择它们 来自 MySQLdocs http dev mysql com doc refman 5 0 en charset
  • 具有 TINYTEXT 列的 CREATE TABLE 语句中出现语法错误 1064?

    这是我到目前为止的 MySQL 代码 CREATE DATABASE bankbase USE bankbase CREATE TABLE clienttable ClientID SMALLINT 15 NOT NULL DEFAULT
  • 从命令提示符启动mysql服务器时出错

    我是 sql 新手 我安装了 mysql 并且正在阅读这本书 Java 如何编程连接到 mysql 我收到以下错误 关于时间戳 我明白原因 但我正在尝试修复 无法创建测试文件 C Program Files MySQL MySQL Serv
  • SSL 连接在 MySQL Workbench 中有效,但在 DBeaver 中无效

    为当今读者编辑 这是旧版本 DBeaver 中的一个错误 随后已修复 我尝试在 DBeaver 中使用 SSL 连接到 Google Cloud SQL MySQL 实例时遇到 访问被拒绝 错误 我能够 在 MySQL Workbench
  • 警告:mysqli_stmt::bind_param():变量数量与准备好的语句中的参数数量不匹配[重复]

    这个问题在这里已经有答案了 我收到以下错误 Warning mysqli stmt bind param Number of variables doesn t match number of parameters in prepared
  • mysql REPLACE 具有多个主键的查询

    因此 如果存在与插入数据具有相同主键的列 则 MYSQL 的 REPLACE 命令 不要与字符串替换函数混淆 将替换一行 但是如果我有两个主键并且我想使用这两个主键来指定要替换的行而不仅仅是其中一个 我如何指定 mysql 使用两个键而不是
  • 连接错误 - SQLSTATE[HY000] [2002] 操作超时

    我在从 Windows 2008 R2 应用程序服务器连接到也在 Windows 2008 R2 上运行的 MySQL 服务器时遇到问题 Laravel 应用程序报告错误 exception PDOException with messag
  • 使用csv文件-PHP创建表到mysql时添加反引号

    我有一个 php 代码 它将使用 csv 文件创建一个到 mysql 数据库的表 然而 某些列标题没有被 mysql 读取 mysql 唯一一次读取查询是当我添加反引号 您能帮助我在查询中的何处添加反引号吗 这是我的代码 file C Us
  • MySQL 一起使用 LIKE、AND、OR

    我正在创建一个搜索功能来搜索一些图片 每张图片都有一个状态 表示它是被批准还是被拒绝 mysql 在返回之前检查状态 但是它仍然返回不应该返回的图像 这是我的查询 SELECT FROM Pictures WHERE ImageTitle
  • MySQL 偏移无限行

    我想构造一个查询 显示表中的所有结果 但从表的开头偏移 5 据我所知 MySQLLIMIT需要一个限制和一个偏移量 有什么办法可以做到这一点吗 来自MySQL LIMIT 手册 http dev mysql com doc refman 5
  • 从 MySQL 列创建 PHP 数组

    mysql fetch array会给我一个获取行的数组 从一列中所有行的值生成数组的最佳方法是什么 您可以循环遍历数组并创建一个新数组 如下所示 column array while row mysql fetch array info
  • html iframe 中的字符错误

    对不起我的英语我说西班牙语 我正在尝试显示多个php and mysql将在 iframe 内显示的注册 问题是 iframe 向我显示特殊字符的错误 例如 重音符号 感叹号等 D ndecuestamenosyseconsumem s 这
  • 使用 Sequelize 计算关联条目数

    我有两张桌子 locations and sensors 每个条目在sensors有一个外键指向locations 使用 Sequelize 如何获取所有条目locations以及条目总数sensors与每个条目相关联locations R

随机推荐

  • 如何在nuget和项目引用之间有效切换?

    我正在开发一个私有测试工具 它分为一个核心库和几个扩展插件 扩展项目通过私有 MyGet feed 依赖于核心库 因此我只需单击打包并上传到 MyGet feed 即可 无需太多麻烦 我遇到的问题是 除非我发布核心 NuGet 包的全新版本
  • 检测 SSL 浏览器支持

    如何检测客户端浏览器是否支持 SSL 我不是指 到服务器变量 HTTP 我希望能够确定 如果浏览器不支持 SSL 附 我知道这是可能的 因为这家公司 http www cyscape com http www cyscape com 有一款
  • AutoMapper:如何从字符串中解析 Int 并可以根据数据类型创建规则?

    我的表单有两个模型 一个是指向它的 ViewModel 另一个是来自它的 ControlModel ControlModel 具有所有相同的字段名称和层次结构 但所有字段都是字符串数据类型 如何编写 AutoMapper 代码以将字符串字段
  • 如何为特定类编写hashCode方法?

    我正在尝试为我的简单类生成 hashCode 方法 但我没有得到任何结果 我将不胜感激任何帮助 我已经实现了 equals 方法 如下所示 并且还想知道是否需要实现compareTo 方法 我已经导入 java lang Character
  • stringstream.read() 是否消耗流?

    我无法从文档中看出如何std stringstream read 作品 它是否消耗流 换句话说 std stringstream ss char buffer 6 ss lt lt Hello world ss read buffer 6
  • 在jquery中获取

    我试图使用 jquery 获取 li 的嵌套深度 然后创建一个包含 li 和数字的字符串 了解它们的嵌套深度 例如 ul li MenuItem1 li li MenuItem2 ul li SubItemA li ul li li Men
  • 升级到 .NET 4.0 时 配置组出现问题

    因此 我们将网站从 3 5 SP1 升级到 NET 4 当我们运行该站点时 我们收到内部服务器错误 500 指出无法读取以下配置组
  • 如何获取Angular2 RC5中的路线参数

    我已将我的 angular2 项目升级为RC5 using angular cli webpack 我提供的路由如下 const appRoutes Routes path project manager component Project
  • 通过示例了解何时使用dispatch_get_main_queue和requireMainQueueSetup

    不久前我在这里问过类似的问题 requireMainQueueSetup 和dispatch get main queue 的区别 https stackoverflow com questions 50773748 difference
  • ReactJS:在 box-shadow 中使用 rgba 和 styled-components 道具不起作用

    我正在建造一个ReactJS地点和使用样式组件 with ThemeProvider 所以我的背景颜色或颜色CSS代码是这样的background color props gt props theme background 现在我想创建一个
  • NSArray 充满了 NSDictionaries。如何找到对象的索引?

    我有一个array里面充满了NSDictionaries 我想找到index其中一本词典的内容 但我对这本词典的了解只是一个value对于钥匙 name 我该怎么做 查找第一个字典的索引theArray其价值 name is theValu
  • 从Series中获取索引和值

    我在 pandas 中进行选择和索引时有点缓慢 我有一个日期时间系列 我试图从中选择某些元素及其日期时间索引 以便将它们附加到新系列中 例子 import pandas as pd x pd Series 11 12 13 14 15 16
  • 如何在不安装包的情况下运行测试?

    我有一些 Python 包和一些测试 文件排列如下http pytest org latest goodpractices html choosing a test layout import rules http pytest org l
  • 需要Python 2.6版本,在注册表中没有找到

    无法下载任何 python Windows 模块并安装 我想尝试使用 scrapy 框架和 stackless 但由于错误 需要 Python 版本 2 6 在注册表中找不到 而无法安装 尝试将其安装到 Windows 7 64 位机器 我
  • “潜在的空取消引用”上出现 Clang 错误。

    我不断收到以下类型的代码中的 Clang 错误 但我不明白为什么它们会出错 也不知道如何解决它们以使 Clang 满意 NSString checkForLength NSString theString error NSError err
  • Kendo 网格中的列线不同步

    我的剑道网格有太多列 最初我选择隐藏一些列 但后来我决定用水平滚动条显示所有列 我通过为每列分配宽度来做到这一点 当我这样做时 每列之间的行与标题行不同步 我的意思是 网格数据部分中的行相对于标题行稍微向左移动 为了澄清 当我给出每列的宽度
  • NHibernate 没有外键的映射集合

    我有一个名为WorkingDays 的课程 该课程需要一组日期 这些日期是银行假日的日期 在我们的数据库中 我们有一个包含这些日期的表 我希望 nhibernate 获取所有这些日期并填充bankHolidays 集合 然而 问题是我没有一
  • 如何检查文件是否是图像?

    我可以检查某个文件是否是图像吗 在 PHP 中如何做到这一点 如果文件不是图像 我想发出警报消息 此外getimagesize http www php net manual en function getimagesize php 您可以
  • 具有多个主类的 Gradle 应用程序插件

    我正在使用 gradle application 插件来启动我的应用程序 这效果很好 现在我想添加在同一项目中启动不同主类的选项 我可以更改插件的配置以允许这样做吗 apply plugin application mainClassNam
  • 当尝试设置从 MySQL 返回的布尔值时,Dapper 抛出无效的强制转换异常

    我有这门课 public class User public int UserId get set public string UserName get set public bool IsValidated get set 我使用 dap