我用的是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,然后删除模型,重新从数据库中更新模型。
希望对你们有一些帮助。