5

SQLにテーブルがあり、そのテーブル内にデフォルト値GetDate()のDateTime列があります。

エンティティフレームワークでは、コンソールアプリが実行されているコンピューターのローカル日時ではなく、SQL日時を使用したいと思います(SQLサーバーは1時間遅れています)。

この列はnullも許可していません。現在、日付値1/1/0001を渡しており、エラーが発生します。

datetime2データ型をdatetimeデータ型に変換した結果、値が範囲外になりました。\ r\nステートメントが終了しました。

ありがとうございました!

4

3 に答える 3

21
  1. edmxデザイナーを開く
  2. DateTime列を選択します
  3. プロパティに移動し、StoreGeneratedPatternからNoneに変更しますComputed

これにより、EFはその列に値を挿入しないようになります。したがって、列はデータベースによって生成されたデフォルト値を取得します。一部の値を渡すことができないことに注意してください。

于 2013-02-12T15:13:32.803 に答える
3

Fluent APIを使用している場合は、これをDbContextクラスに追加するだけです。

        modelBuilder.Entity<EntityName>()
            .Property(p => p.PropertyName)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);
于 2017-04-25T08:22:46.327 に答える
1

OnModelCreatingメソッドでそのエンティティのcolumnTypeを設定します。modelBuilder.Entity()。Property(s => s.ColumnName).HasColumnType( "datetime2");

于 2013-02-12T15:09:28.897 に答える