使用.Net实体框架和Devart dotConnect for MySQL的时间戳问题

时间:2011-01-14 14:03:44

标签: .net mysql entity-framework devart

我的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:日期时间值不正确:'0001-01-01 00:00:00'表示第1行的'Timestamp'列。

我需要Timestamp-field来处理并发问题。

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

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

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

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

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

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