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

发布于 2024-10-12 04:56:02 字数 595 浏览 1 评论 0原文

我的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人疚 2024-10-19 04:56:02

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

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

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

使用上面的注释将告诉 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.

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

Use above annotation will tell EF to ignore the CreateDate when make changes to the entity.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文