实体框架6 mysql rowversion

Aja*_*mar 8 c# mysql entity-framework ef-code-first entity-framework-6

我正在使用我的sql实体框架6,似乎mysql不支持行版本字节数组.任何帮助如何实现这一目标.

[Column(TypeName = "timestamp")]
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime TimeStamp { get; set; }
Run Code Online (Sandbox Code Playgroud)

bub*_*ubi 4

首先,如果您使用自动迁移,我认为属性属性不足以创建正确的字段类型。
这里https://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html是 EF 提供程序应生成的语法,以创建自动生成/更新的时间戳。

创建正确的字段类型后,您可以尝试 2 次:

- 将字段标记为时间戳

[Timestamp]
public DateTime TimeStamp { get; set; }
Run Code Online (Sandbox Code Playgroud)

我认为 EF 不需要时间戳字段是 byte[]。时间戳应该只意味着是数据库生成的字段,并且乐观并发使用该字段(即更新查询包含要更新的记录的键和该字段)。但很多时候 EF 并不像我想象的那样工作......

-将该字段标记为由数据库生成并用作用于检查乐观并发异常的字段

[ConcurrencyCheck]
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime TimeStamp { get; set; }
Run Code Online (Sandbox Code Playgroud)