使用 .Net 实体框架和 Devart dotConnect for MySQL 的时间戳问题
我的 MySQL 数据库中有下表:
如果不存在则创建表 Benutzer (
ID 整数主键自动递增,
登录 VARCHAR(20) NOT NULL,
Nachname VARCHAR(50) NOT NULL,
原名 VARCHAR(50) NOT NULL,
时间戳 更新时时间戳默认为 0 CURRENT_TIMESTAMP
)
在我的 Visual Studio 2010-edmx 中,时间戳字段具有以下属性:
StoreGeneratePattern:计算
类型:日期时间
在将新记录插入表中时,出现以下异常:
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。
感谢帮助。
I have the following table in my MySQL database :
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
)
In my Visual Studio 2010-edmx the field Timestamp has the following atrributes:
StoreGeneratedPattern: Computed
Type: DateTime
On inserting a new record into the table I get the following exception:
Devart.Data.MySql.MySqlException: Incorrect datetime value: '0001-01-01 00:00:00' for column 'Timestamp' at row 1.
I need the Timestamp-field to handle concurrency issues.
Version of Devart.Data.MySql.Entity is 6.0.86.0.
Im am using Visual Studio 2010 and .Net Runtime 3.5 Sp1.
Help is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
也许您应该忽略 EntityFramework 更新此 DateTime 字段。
只需让数据库自动处理其值更新即可。
EntityFramework 似乎为 DateTime 字段提供了一个默认值,即“0001-01-01 00:00:00”,这是.NET 的默认行为。
使用上面的注释将告诉 EF 在对实体进行更改时忽略 CreateDate。
Maybe you should IGNORE update this DateTime field by EntityFramework.
Just let database handle its value update automatically.
It seems EntityFramework give a default value to DateTime field which is "0001-01-01 00:00:00", it's the default behavior of .NET.
Use above annotation will tell EF to ignore the CreateDate when make changes to the entity.