项目是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中每次手动赋值的需求。