EntityFramwork+Mysql 插入表数据无法获取Datetime当前值

iAm_Ike 2018-09-21 11:54:42
项目是ASP.NET WEB API +Entity Framework 5+Mysql 5.1

user表中有一个字段Addtime表示这条数据插入的时间,我希望在sql插入时自动形成这个时间,不需要API或者EF做任何处理。于是将Addtime设置成不可为空,默认值是Insert 当前时间,并使用EF DBFirst 映射表,如下图:





此时使用EF 插入一条数据,得到以下数据




Addtime为0000-00-00 00:00:00,不符合需求。


再将Addtime字段设置为可为空,默认值为Insert当前时间,并更新EF映射,如下图:





使用EF插入一条数据,得到以下:


依然失败。


唯一成功的情况是,将mysql中Addtime 设置成不可为空,但是不更新EF中映射的user表,也就是在EF中Addtime的字段还是可为空的,此时插入一条数据,Addtime成功插入为当前时间,但是这样的话每次更新EF映射,user表Addtime都会被重新更新为不可为空,依然没有解决问题。


以下是我的问题:

一,可否手动的处理EF中对mysql表的映射关系,比如,在mysql中addtime为非空,但是映射时映射为可为空

二,可否在EF映射字段时为字段添加一个默认值,比如Addtime默认值为DateTime.Now,这样也可以达到不在API中每次手动赋值的需求。


...全文
437 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iAm_Ike 2019-08-15
  • 打赏
  • 举报
回复
StoreGeneratePattern字段,不好意思图传错了,是并发模式上面的那个StoreGeneratePattern字段需要设置一下,设置成其他的。
iAm_Ike 2019-08-12
  • 打赏
  • 举报
回复
忘了结帖,需要针对这个箭头指着的属性进行设置才可以自动生成datetime字段, 另外现在用了codefirst的话感觉比dbfirst好多了,不推荐用dbfirst的方式。
EdsionWang 2018-09-25
  • 打赏
  • 举报
回复
Addtime设置成datetime类型

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧