Entity Framework 4.1 で導入された DbContext および Code First API を使用しています。
のデータ・モデルstring
は、やなどの基本データ型を使用しますDateTime
。場合によっては のみデータ注釈を使用します[Required]
が、これはどのDateTime
プロパティにも存在しません。例:
public virtual DateTime Start { get; set; }
のDbContext サブクラスこれもシンプルで次のようになります。
public class EventsContext : DbContext
{
public DbSet<Event> Events { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Event>().ToTable("Events");
}
}
の初期化子モデル内の日付を今年または来年の適切な値に設定します。
しかし、初期化を実行すると、次のエラーが発生しますcontext.SaveChanges()
:
datetime2 データ型を datetime データ型に変換した結果、範囲外の値になりました。ステートメントは終了しました。
すべてがとても単純なので、なぜこのようなことが起こるのか全く理解できません。編集する edmx ファイルがないので、修正方法もわかりません。
何か案は?
ベストアンサー1
Start が SqlDateTime.MinValue (1753 年 1 月 1 日) 以上であることを確認する必要があります。デフォルトでは、Start は DateTime.MinValue (0001 年 1 月 1 日) と同じです。