2011-01-14 65 views
1
时间戳

我在我的MySQL数据库如下表:问题使用的.Net实体框架和Devart dotConnect为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领域时间戳具有以下atrributes:

StoreGeneratedPattern: Computed
Type: DateTime

在插入新记录到表中我得到以下异常:

Devart.Data.MySql.MySqlException:错误的日期时间值:'0001-01-01 00:00:00'列1'行'的时间戳。

我需要Timestamp字段来处理并发问题。

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

帮助表示赞赏。

+0

发布生成的mysql查询 – 2011-01-14 14:05:54

回答

0

也许你应该IGNORE通过EntityFramework更新这个DateTime字段。 让数据库自动处理其值更新。

看来EntityFramework给DateTime字段的默认值是“0001-01-01 00:00:00”,这是.NET的默认行为。

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

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