我在我的 sql 中使用 Entity Framework 6,似乎 mysql 不支持行版本字节数组。 任何帮助如何实现这一目标。
[Column(TypeName = "timestamp")]
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime TimeStamp { get; set; }
最佳答案
首先,如果您使用的是自动迁移,我认为属性属性不足以创建正确的字段类型。
这里https://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html EF 提供程序应该生成一些语法来创建自动生成/更新的时间戳。
创建正确的字段类型后,您可以尝试 2 次:
-将字段标记为时间戳
[Timestamp]
public DateTime TimeStamp { get; set; }
我不认为 EF 需要时间戳字段是 byte[]。时间戳应该只意味着这是数据库生成的字段并且乐观并发使用该字段(即更新查询包含要更新的记录键上的位置和该字段)。但往往 EF 并没有像我想的那样工作......
-将字段标记为由数据库生成,并作为用于检查乐观并发异常的字段
[ConcurrencyCheck]
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime TimeStamp { get; set; }
关于c# - Entity Framework 6 mysql rowversion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32113023/