SqlDateTime overflow. Moet tussen 1/1/1753 00:00:00 uur en 31-12-9999 11 zijn
Bij het invoegen van gegevens in het NHibernate orm-framework werd bovenstaande fout gerapporteerd:
SqlDateTime overflow / SqlDateTime overflow [Samenvatting: Fout - SqlDateTime overflow. Moet tussen 1/1/1753 00:00:00 en 31-12-9999 23:59 zijn SqlDateTime overflow. Moet tussen 1/1/1753 12:00:00 AM zijn Oorlog 31/12/9999 23:59:59 Reden Bij het toepassen van C# invoegen of bijwerken van database, datum en tijd word]
Fout - SqlDateTime overflow. Moet zijn tussen 1/1/1753 00:00:00 en 31/12/9999 23:59:59 SqlDateTime overflow. Moet zijn tussen 1/1/1753 00:00:00 en 31/12/9999 23:59:59
Oorzaak
Bij gebruik van C# insert- of updatedatabase is de datetime-veldwaarde standaard nul; insertion C# 0001-01-01-01 veroorzaakt een overflow van SQL-server datetime-type.
DatumTijd-typebereik in C#
DateTime.MinValue = 1/1/0001 00:00:00 AM DateTime.MaxValue = 23:59:59.99999999, 31 december 9999, precies één tik van 100 nanoseconden voor 00:00:00, 1 januari 10000 Datetime type bereik in SQL Server
tussen 1/1/1753 00:00:00 en 31-12-9999 23:59:59
Na het lezen van dit artikel begrijp ik waarschijnlijk iets: er zou een eigenschap moeten zijn die leeg is, NHibernate stelt automatisch de standaardwaarde in, ik denk dat het zo zou moeten zijn????
Vervolgens, na het toewijzen van het UpdateTime-attribuut dat oorspronkelijk niet was toegewezen,Ontdekte dat er geen fout was, en voegde vervolgens de datatabel in,
Maar mijn vakgebied kan leeg zijn, wat moet ik doen???
Zoek de UpdateTime-eigenschap onder de klasse DateTime en zet deze op DateTime? Dat wil zeggen, ruimte voor leegte. (In de gemapte xml is het beste, ook ingesteld op niet-null="false", als volgt:)
Tot slot, succes, maak een screenshot van de database!
|