首页新闻找找看学习计划

efcore bool和guid类型

0
悬赏园豆:50 [已解决问题] 解决于 2019-03-28 16:29

我记得ef6 .net framework生成的mysql数据库类型分别是tinyint(1)和char(36) 为哈efcore生成的变成了bit(1)和varbinary(16)呢 这个是mysql provider的问题吗

问题补充:

而且参考这个答案TreatTinyAsBoolean=true加在连接字符串里好像也不行,不知道是哪里出问题了
https://q.cnblogs.com/q/108459

maxwelltsai的主页 maxwelltsai | 初学一级 | 园豆:111
提问于:2019-03-27 17:56

折中一下把guid改成string,bool改成int ,凑合一下

maxwelltsai 11个月前
< >
分享
最佳答案
0

应该是provider有关的,今天正好看到这个:MySQL5.0之前,bit是tinyint的同义词,但是5.0以后,这两完全是不同的数据类型,请参看《高性能MySQL》

收获园豆:50
会长 | 大侠五级 |园豆:6040 | 2019-03-27 18:07

目前bool类型映射bit(1) 在C#里的bool值true false是写不进数据库的,请问这种情况咋处理,guid的还好 大不了声明text类型的

maxwelltsai | 园豆:111 (初学一级) | 2019-03-28 11:23

@maxwelltsai: 映射成bit(1) 不挺好吗,你说的处理是指?

会长 | 园豆:6040 (大侠五级) | 2019-03-28 11:29

@会长: 额 就是netcore把true通过msql provider传到数据库的时候仍然是true 但是数据库的类型bit(1)无法识别 然后报错了 bool到int16的转换错误

maxwelltsai | 园豆:111 (初学一级) | 2019-03-28 11:53

@maxwelltsai: 这样的话要不指定一下字段类型吧:https://www.cnblogs.com/xp1056/p/EntityFrameWork.html

会长 | 园豆:6040 (大侠五级) | 2019-03-28 11:56

@会长: 这个也许是个解决方案 但是我的enabled是公用属性 就单单这个字段的话 我估计每张表我都得在modelCreating里配置一下 话说感觉好累呀,,

maxwelltsai | 园豆:111 (初学一级) | 2019-03-28 12:00

@maxwelltsai: 你查查看看有没有一步到位的api,我用ef用的少,不太清楚

会长 | 园豆:6040 (大侠五级) | 2019-03-28 12:25

@会长: 好的 谢谢

maxwelltsai | 园豆:111 (初学一级) | 2019-03-28 16:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册