我的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。
非常感谢帮助。
答案 0 :(得分:0)
也许您应该通过EntityFramework IGNORE更新此DateTime字段。 只需让数据库自动处理其值更新。
似乎EntityFramework为DateTime字段提供了一个默认值,即“0001-01-01 00:00:00”,这是.NET的默认行为。
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTimeOffset CreateDate { get; set; }
使用上面的注释将告诉EF在对实体进行更改时忽略CreateDate。