EF核心:交叉上下文时间戳

时间:2018-02-10 00:56:52

标签: mysql sql-server timestamp entity-framework-core entity-framework-core-migrations

我有一个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属性也会这样做。

0 个答案:

没有答案