dotnetcore / FreeSql

🦄 .NET aot orm, C# orm, VB.NET orm, Mysql orm, Postgresql orm, SqlServer orm, Oracle orm, Sqlite orm, Firebird orm, 达梦 orm, 人大金仓 orm, 神通 orm, 翰高 orm, 南大通用 orm, 虚谷 orm, 国产 orm, Clickhouse orm, DuckDB orm, TDengine orm, QuestDB orm, MsAccess orm.
https://freesql.net
MIT License
4.13k stars 860 forks source link

ExecuteMySqlBulkCopy方法批量插入 ,bool类型字段问题 #1187

Closed alvinhao666 closed 2 years ago

alvinhao666 commented 2 years ago

问题描述及重现步骤:

ExecuteMySqlBulkCopy方法批量插入数据 ,bool类型字段,默认false,数据库中却显示为 1,试了ExecuteAffrows方法,数据库中显示正确为0 数据库字段类型 是 bit类型

数据库的具体版本

Mysql5.7

安装的包

FreeSql.Provider.MySqlConnector 3.2.665

.net framework/. net core? 及具体版本

.net core 2.1

2881099 commented 2 years ago

群内回复结果:

fsql.Insert(list).ToDataTable() 得到值是正常的 true/false,数据库表类型是 bit,映射失败

解决办法:

修改表字段类型为 int

luoyunchong commented 2 years ago

ConsoleApp1.zip

经测试也没有重现

alvinhao666 commented 2 years ago

我在数据库中 SoftDeleted 前面加了一个字段 Name(一定要加在SoftDeleted前面),但代码中未添加Name属性,删除表数据后,重新insert,复现了这个问题

2881099 commented 2 years ago

数据库表和实体类,要一一对应,因为 mysql bulkcopy 应该采用的 cvs 导入,可能导致偏移

luoyunchong commented 2 years ago

你用的不是code first?手动修改了表结构啊

alvinhao666 commented 2 years ago

你用的不是code first?手动修改了表结构啊 是的 ,操作方式问题吧