[Exam Preperation] Проблем с вкарване на дата в базата
Здравейте,
Решавам поправителният изпит от Web services and cloud(BidSystem). Имам следният проблем:
Когато създавам нов offer като казвам на db.SaveChanges ми гърми с този ексепшън (The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.\r\nThe statement has been terminated.) Това ми се случи и на изпита по Database Apps. Тогава не можах да намеря решения на проблема. Сега намерих решение, като слагам анотация на всяко пропърти от тип DateTime [Column(TypeName = "datetime2")]. Въпросът ми е има ли някакво глобално решение на проблема, или трябва да използвам винаги само това?
Ами да сигурен съм. Като е с анотацията отгоре си минава успешно, като я няма гърми. Сега тествах пак и се получи нещо много странно. Като махна анотацията нито една заявка не минава дори логване и регистрация. Статус кода е 500
Това ми се получава ако пробвам да сложа дата преди 1753 г. (примерно new DateTime(0, 0, 0). Другият вариант е да не си го направил nullable.
Добре, а какво сетваш като дата? Почти сигурен съм, че не се подава нищо (т.е. дата 0.0.0 както Едо казва), защото datatime си е стандартният формат в базата.
На изпита по DB Apps действително имаше двама души, на които им гърмеше с тази грешка без видима причина. Датата се парсваше правилно и се сетваше както трябва, но при стартиране хвърляше ексепшън.
Най-добре колегата да си сподели кода, за да проверим дали на друга машина ще се получи същото.
Това ми се получава ако пробвам да сложа дата преди 1753 г. (примерно new DateTime(0, 0, 0). Другият вариант е да не си го направил nullable.