我有一个EF Core的测试项目,我正在测试MySql和Sql服务器上下文。我有以下财产:
[Timestamp]
public DateTime CreatedOn { get; set; }
根据https://docs.microsoft.com/en-us/ef/core/modeling/concurrency,
对于SQL Server,时间戳通常用在byte []属性上,该属性将设置为数据库中的ROWVERSION列
但是,对于MySql,我需要使用DataTime,否则在尝试保存新记录时会出错。在SQL Server中,如果我使用DateTime
进行迁移,则它不会将Timestamp指定为默认值。也就是说,每次创建新记录时,都会显示一条错误消息,指出CreatedOn
列不能为空。
我正在使用Pomelo.EntityFrameworkCore.MySql
用于MySql。我尝试多个上下文的原因是模拟在开发过程中更改数据库等情况。
有没有办法设置一个在两者中都很常见的时间戳?如果不是普通属性,那么shadow属性也会这样做。