1

我的 MySQL 数据库中有下表:

CREATE TABLE IF NOT EXISTS Benutzer (
Id INTEGER PRIMARY KEY AUTO_INCREMENT,
Login VARCHAR(20) NOT NULL,
Nachname VARCHAR(50) NOT NULL,
Vorname VARCHAR(50) NOT NULL,
Timestamp TIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP
)

在我的 Visual Studio 2010-edmx 中,Timestamp 字段具有以下属性:

StoreGeneratedPattern: Computed
Type: DateTime

在将新记录插入表中时,出现以下异常:

Devart.Data.MySql.MySqlException:不正确的日期时间值:第 1 行的列“时间戳”的“0001-01-01 00:00:00”。

我需要时间戳字段来处理并发问题。

Devart.Data.MySql.Entity 的版本是 6.0.86.0。我正在使用 Visual Studio 2010 和 .Net Runtime 3.5 Sp1。

帮助表示赞赏。

4

1 回答 1

1

也许您应该通过 EntityFramework 忽略更新此 DateTime 字段。只需让数据库自动处理其值更新即可。

似乎 EntityFramework 为 DateTime 字段提供了一个默认值,即“0001-01-01 00:00:00”,这是 .NET 的默认行为。

    [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
    public DateTimeOffset CreateDate { get; set; }

使用上述注释将告诉 EF 在对实体进行更改时忽略 CreateDate。

于 2015-06-24T04:17:01.483 回答