Debordarea SqlDateTime. Trebuie să fie între 1/1/1753 00:00:00 și 31/12/9999 11
La inserarea datelor în cadrul orm NHibernate, a fost raportată eroarea de mai sus:
Debordare SqlDateTime / Suprasolicitare SqlDateTime [Rezumat: Eroare - Suprasolicitare SqlDateTime. Trebuie să fie între 1/1/1753 00:00:00 și 31.12.9999 11:59:59 PM SqlDateOra în plus. Trebuie să fie între 1/1/1753 12:00:00 AM Război 31.12.9999 11:59:59 PM Motiv Când aplici C# inserează sau actualizează baza de date, cuvânt data-oră
Eroare - SqlDateTime, overflow. Trebuie să fie între 01.01.1753 00:00:00 și 31.12.9999 23:59:59 Debordarea SqlDateTime. Trebuie să fie între 01.01.1753 00:00:00 și 31.12.9999 23:59:59
Cauză
Când se folosește C# insert sau update database, valoarea câmpului date-oră este nulă prin inserția implicită C# 0001-01-01 cauzează depășirea tipului data-oră al serverului SQL.
Intervalul de tipuri DateTime în C#
DateTime.MinValue = 1/1/0001 12:00:00 AM DateTime.MaxValue = 23:59:59.99999999, 31 decembrie 9999, exact un tick de 100 nanosecunde înainte de 00:00:00, 1 ianuarie 10000 Intervalul de tipuri de date-oră în Sql Server
între 1/1/1753 00:00:00 și 31.12.999 11:59:59 PM
După ce am citit acest articol, probabil am înțeles ceva: ar trebui să existe o proprietate care să fie goală, NHibernate setează automat valoarea implicită, cred că ar trebui să fie așa????
Apoi, după atribuirea atributului UpdateTime care nu fusese atribuit inițial,s-a constatat că nu a existat nicio eroare, și apoi a introdus tabelul de date,
Totuși, câmpul meu poate fi gol, ce ar trebui să fac???
Să găsești proprietatea UpdateTime sub clasa DateOra și să o setezi pe DateTime? Adică, să permită goliciunea. (În xml mapat este cel mai bun, setat tot pe not-null="false", după cum urmează:)
În final, succes, fă o captură de ecran a bazei de date!
|