1

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 では、タイムスタンプ フィールドに次の属性があります。

StoreGeneratedPattern: Computed
Type: DateTime

テーブルに新しいレコードを挿入すると、次の例外が発生します。

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を使用しています。

助けていただければ幸いです。

4

1 に答える 1

1

たぶん、EntityFramework でこの DateTime フィールドを更新しないでください。データベースに値の更新を自動的に処理させるだけです。

EntityFramework が "0001-01-01 00:00:00" である DateTime フィールドにデフォルト値を与えるようです。これは .NET のデフォルトの動作です。

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

上記の注釈を使用すると、エンティティに変更を加えるときに CreateDate を無視するように EF に指示されます。

于 2015-06-24T04:17:01.483 に答える