c# - Entity Framework 6 mysql rowversion

标签 c# mysql entity-framework ef-code-first entity-framework-6

我在我的 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/

相关文章:

c# - 是否可以在不阻止所有其他 MdiChildForms 和 MdiParent 的情况下使用 MdiChildForm 的 ShowDialog?

c# - 使用属性或扩展 json.net 库寻找 Hydra/Json-ld 序列化程序

php - 使用 php 解析 mysql 转储文件中的值?

mysql - 当我尝试仅从一个用户获取数据时,查询从两个不同用户获取数据

entity-framework - 无法加载文件,因为在此系统上禁用了脚本的执行

c# - 在 ListView 中显示项目的弹出窗口保持 x 秒?

c# - 如何检查字符串是否为空并在同一行中分配其值

mysql - OSX Yosemite 升级后如何让 MySQL 服务器工作?

c# - 如何解决 Entity Framework 中的内存不足异常错误?

c# - 无法正确组合查询