Проблема с отметкой времени при использовании .Net Framework и Devart dotConnect для MySQL - PullRequest
1 голос
/ 14 января 2011

В моей базе данных MySQL есть следующая таблица:

CREATE TABLE IF NOT EXISTS Benutzer (<br> Id INTEGER PRIMARY KEY AUTO_INCREMENT,<br> Login VARCHAR(20) NOT NULL,<br> Nachname VARCHAR(50) NOT NULL,<br> Vorname VARCHAR(50) NOT NULL,<br> Timestamp TIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP<br> )

В моем Visual Studio 2010-edmx поле Timestamp имеет следующие атрибуты:

StoreGeneratedPattern: Computed<br> Type: DateTime

При добавлении новой записи в таблицу я получаю следующее исключение:

Devart.Data.MySql.MySqlException: Неверное значение datetime: '0001-01-01 00:00:00 'для столбца' Timestamp 'в строке 1.

Мне нужно поле Timestamp для решения проблем параллелизма.

Версия Devart.Data.MySql.Entity - 6.0.86.0.Я использую Visual Studio 2010 и .Net Runtime 3.5 Sp1.

Помощь приветствуется.

1 Ответ

0 голосов
/ 24 июня 2015

Может быть, вы должны IGNORE обновить это поле DateTime EntityFramework. Просто дайте базе данных обработать обновление значения автоматически.

Кажется, EntityFramework задает значение по умолчанию для поля DateTime, которое равно "0001-01-01 00:00:00", это поведение по умолчанию .NET.

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

Использование приведенной выше аннотации скажет EF игнорировать CreateDate при внесении изменений в сущность.

...