用EF+MySql+DbFirst遇到的坑

我用的是vs2017+Mysql数据库。
EF是微软的一个ORM框架,我采用DBFirst方式,有一次在对项目某个表进行CRUD时,发现datetime类型的字段无法保存到数据库表里面,百度了好多次,也没发现什么问题。

一开始以为是mysql.data和mysql.data.Entity版本问题,把版本从6.9.12升级到6.10.8,结果还是不行。

后来进行了不断的测试,发现问题出现在dbfirst生成edmx里面。
我的字段是CreateTime,类型是datetime,是设了默认值CURRENT_TIMESTAMP。

CreateTime字段的默认值设为CURRENT_TIMESTAMP时,VS从数据库更新模型时生成edmx时,在edmx的实体类型的这个字段属性中StoreGeneratedPattern为Identity

这样的话,当对这个表进行增删改查时,是无法将这个字段保存到数据库中的

解决办法:就是将这个StoreGeneratedPattern改为none,或者时间字段的默认值不设成CURRENT_TIMESTAMP,然后删除模型,重新从数据库中更新模型。

希望对你们有一些帮助。

 

posted @ 2019-06-17 09:07  LiCa  阅读(439)  评论(0)    收藏  举报