实体类的属性可以这样使用默认值
public Guid Id { get; set; } = Guid.NewGuid();
public DateTime CreateTime { get; set; } = DateTime.Now;
默认值的含义是你不给这个字段赋值,才会使用默认值(NULL也是值)
所以插入的时候,insert语句不加该字段即可,ORM框架可以使用特性排除该字段
要么同上@E行者一样给默认值,要么在映射的时候给默认值。
builder.Entity<XXX>().Property(l => l.X).HasDefaultValue(); //HasDefaultValueSql("GETDATE()")
数据库给 ID createtime 两个字段的默认值,是在没有给字段赋值的时候生效的
比如
insert into tableA (filedA,filedB) values……
其中 tableA 存在字段 ID createtime
C# 中
Guid 的默认值是 00000000-0000-0000-0000-000000000000
DateTime 的 默认值是 Date = {0001-01-01 00:00:00}
生成 SQL 的时候,对这两个字段赋值了,插入的就是这样的值
你需要做的,要么是在EF模型中修改字段属性,要么就是直接对 Model 赋值你想要的值