NetCore + Mysql + EF:No coercion operator is defined between types 'System.Int16' and 'System.Boolean',
2024-08-22 21:58:29
总结三种解决办法:
1.Mysql升级到7
2.Nuget安装Pomelo.EntityFrameworkCore.MySql 2.2.0替代MySql.Data.EntityFrameworkCore 8.0.16后正常.
PS:如果使用Pomelo库的SQL语句查询Convert.ToDateTime(item["createtime"]).ToString("yyyy-MM-dd HH:mm:ss")会报Unable to cast object of type 'MySql.Data.Types.MySqlDateTime' to type 'System.IConvertible'. 要改成Convert.ToDateTime(item["dskuupdatetime"].ToString()).ToString("yyyy-MM-dd HH:mm:ss").
3.EF上下文添加转换代码
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder); foreach (var entityType in builder.Model.GetEntityTypes())
{
foreach (var property in entityType.GetProperties())
{
if (property.ClrType == typeof(bool))
{
property.SetValueConverter(new BoolToIntConverter());
}
}
}
}
public class BoolToIntConverter : ValueConverter<bool, int>
{
public BoolToIntConverter( ConverterMappingHints mappingHints = null)
: base(
v => Convert.ToInt32(v),
v => Convert.ToBoolean(v),
mappingHints)
{
} public static ValueConverterInfo DefaultInfo { get; }
= new ValueConverterInfo(typeof(bool), typeof(int), i => new BoolToIntConverter(i.MappingHints));
}
PS: Linq Any转换失败:
var isExist = db.MyDbTable.Any(o => o.Id == id);
//throw No coercion operator is defined between types 'System.Int16' and 'System.Boolean',
要改成
var isExist = db.MyDbTable.FirstOrDefault(o => o.Id == id) != null;
对于Linq Any有其他解决办法吗?
最新文章
- 讲座:Influence maximization on big social graph
- 4 Handler相关类——Live555源码阅读(一)基本组件类
- C#窗体全屏功能
- 【转载】高性能IO设计 &; Java NIO &; 同步/异步 阻塞/非阻塞 Reactor/Proactor
- RFID开发利器 proxmark3
- 在安全层面,企业如何获得更好的投资回报率 ROI?
- MVC View显示详解(RenderBody,RenderPage,RenderSection,Partial)
- 苹果新的编程语言 Swift 语言进阶(四)--字符串和收集类型
- 8000个JQuery特效(插件)
- 关于while read line 循环中变量作用域的问题
- C语言复习---找出一个二维数组的鞍点
- mysql数据库1
- PHP $_SERVER 及用户真实IP
- I/O多路复用 select poll epoll
- drop,truncate,delete 区别
- TPM及TSS协议栈的安装使用
- Spring Security教程(八):用户认证流程源码详解
- JavaScript 读取修改元素 及 伸拉门案例
- Hadoop之 MapReducer工作过程
- Ehcache缓存框架具体解释
热门文章
- Java多线程系列 基础篇03 线程的优先级和守护线程
- bind(),live(),delegate(),on()绑定事件方式
- 《avascript 高级程序设计(第三版)》 ---第一章 Javascript简介
- SDUT 2766 小明传奇2
- 算法(Algorithms)第4版 练习 1.3.14
- CentOS7 默认防火墙firewalld
- Anomaly Detection for Time Series Data with Deep Learning——本质分类正常和异常的行为,对于检测异常行为,采用预测正常行为方式来做
- Hotel California
- mysql之count
- bzoj2673