SqlDateTime pārpilde. Jābūt no 1/1/1753 12:00:00 AM līdz 12/31/9999 11
Ievietojot datus ar NHibernate orm ietvaru, tika ziņots par iepriekš minēto kļūdu:
SqlDateTime pārpilde / SqlDateTime pārpilde [Kopsavilkums: Kļūda - SqlDateTime pārpilde. Jābūt no 1/1/1753 12:00:00 AM un 12/31/9999 11:59:59 PM SqlDateTime pārpilde. Jābūt starp 1/1/1753 12:00:00 AM Karš 12/31/9999 11:59:59 PM Iemesls Lietojot C# ievietot vai atjaunināt datu bāzi, datetime word]
Kļūda - SqlDateTime pārpilde. Jābūt no 1/1/1753 12:00:00 AM līdz 12/31/9999 11:59:59 PM SqlDateTime pārpilde. Jābūt no 1/1/1753 12:00:00 AM līdz 12/31/9999 11:59:59 PM
Cēlonis
Izmantojot C# ievietot vai atjaunināt datu bāzi, datuma/laika lauka vērtība pēc noklusējuma ir nulle. Ievietošana C# 0001-01-01 izraisa SQL servera datetime tipa pārpildi.
DateTime tipa diapazons C#
DateTime.MinValue = 1/1/0001 12:00:00 AM DateTime.MaxValue = 23:59:59.9999999, 9999. gada 31. decembris, tieši viena 100 nanosekunžu ķeksītis pirms 10000. janvāra 00:00:00 Datetime tipa diapazons SQL Server
no 1/1/1753 12:00:00 AM un 12/31/9999 23:59:59 PM
Pēc šī raksta izlasīšanas es, iespējams, kaut ko saprotu, vajadzētu būt tukšam rekvizītam, NHibernate automātiski nosaka noklusējuma vērtību, es domāju, ka tam vajadzētu būt šādam????
Pēc tam pēc sākotnēji nepiešķirtā atribūta UpdateTime piešķiršanaskonstatēja, ka nav kļūdasun pēc tam ievietojiet datu tabulu,
Tomēr mans lauks var būt tukšs, kas man jādara???
Atrodiet rekvizītu UpdateTime zem klases DateTime un iestatiet to uz DateTime? Tas ir, ļaujiet tukšumam. (Kartētajā xml ir vislabākais, arī iestatīts uz not-null="false", šādi:)
Visbeidzot, panākumi, uzņemiet datu bāzes ekrānuzņēmumu!
|