我记得ef6 .net framework生成的mysql数据库类型分别是tinyint(1)和char(36) 为哈efcore生成的变成了bit(1)和varbinary(16)呢 这个是mysql provider的问题吗
而且参考这个答案TreatTinyAsBoolean=true加在连接字符串里好像也不行,不知道是哪里出问题了
https://q.cnblogs.com/q/108459
应该是provider有关的,今天正好看到这个:MySQL5.0之前,bit是tinyint的同义词,但是5.0以后,这两完全是不同的数据类型,请参看《高性能MySQL》
目前bool类型映射bit(1) 在C#里的bool值true false是写不进数据库的,请问这种情况咋处理,guid的还好 大不了声明text类型的
@maxwelltsai: 映射成bit(1) 不挺好吗,你说的处理是指?
@会长: 额 就是netcore把true通过msql provider传到数据库的时候仍然是true 但是数据库的类型bit(1)无法识别 然后报错了 bool到int16的转换错误
@maxwelltsai: 这样的话要不指定一下字段类型吧:https://www.cnblogs.com/xp1056/p/EntityFrameWork.html
@会长: 这个也许是个解决方案 但是我的enabled是公用属性 就单单这个字段的话 我估计每张表我都得在modelCreating里配置一下 话说感觉好累呀,,
@maxwelltsai: 你查查看看有没有一步到位的api,我用ef用的少,不太清楚
@会长: 好的 谢谢
问题得到解决了?
折中一下把guid改成string,bool改成int ,凑合一下
– maxwelltsai 5年前@maxwelltsai: efcore2.x guid映射成char(36)没有问题啊,但是bool映射成bit(1)好像就有问题
– 求知若饥,虚心若愚 4年前