2011-01-14 2 views
1

Ich habe die folgende Tabelle in meiner MySQL-Datenbank:Problem mit Timestamp mit .NET Entity Framework und Devart dotConnect für 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
)

In meinem Visual Studio 2010-edmx des Feld Timestamp hat folgendes atrributes:

StoreGeneratedPattern: Computed
Type: DateTime

Auf einen neuen Datensatz in die Tabelle einfügen ich die folgende Ausnahme erhalten:

Devart.Data.MySql.MySqlException: falscher Datums- und Uhrzeitwert: ‚0001-01-01 00.00.00‘ für Spalte ‚Zeitstempel‘ in Zeile 1.er

ich brauche das Zeitstempel-Feld Parallelitätsprobleme zu handhaben.

Die Version von Devart.Data.MySql.Entity ist 6.0.86.0. Ich verwende Visual Studio 2010 und .NET Runtime 3.5 SP1.

Hilfe ist willkommen.

+0

die erzeugte mysql query –

+0

Einsatz in anlaufmanagement.benutzer Post (Anmelden, Nachname, Vorname, 'Timestamp') Werte ('xxx', 'Nachname', 'Vorname',‚0001-01-01 00.00: 00 ') ; wähle ID von anlaufmanagement.benutzer mit ID = last_insert_id() – shepard1

+0

Das Problem scheint zu sein, dass mysql nicht in der Lage ist, 0001-01-01 00:00:00 als Timestamp zu behandeln. – shepard1

Antwort

0

Vielleicht sollten Sie IGNORE aktualisieren dieses DateTime-Feld von EntityFramework. Lassen Sie die Datenbank einfach ihren Wert automatisch aktualisieren.

Es scheint, EntityFramework geben einen Standardwert für DateTime-Feld, das "0001-01-01 00:00:00" ist, es ist das Standardverhalten von .NET.

Die obige Annotation weist EF an, CreateDate zu ignorieren, wenn Änderungen an der Entität vorgenommen werden.

Verwandte Themen