我在DB中有Subscribers表,它包含默认值GetDate()的DateCreate字段。 当我尝试通过Entity Framework向表中添加新记录时:
Subscribers subs = new Subscribers();
subs.Email = email;
subs.DateCreate = DateTime.Now;
DataBase.DBContext.AddToSubscribers(subs);
DataBase.DBContext.SaveChanges();
它抛出一个异常: SqlDateTime溢出。必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。
谁能帮帮我? 感谢。
答案 0 :(得分:4)
GETUTCDATE()
代替GETDATE()
答案 1 :(得分:2)
这是一个迟到的答案,但我刚才遇到了同样的问题。出现此问题的原因是您的实体中有另一个日期,默认值(MinValue)为1/1/0001。在SQL / Server中,默认值(MinValue)是1/1/1753或其他。
我找到了一篇很棒的文章,帮助我在vfstech.com,这建议在数据库中使用datetime2而不是datetime,但这对我来说不是一个选项。但是它也有代码可以双向进行翻译。我很快创建了一个继承自我的实体类的类,并在我的应用程序中使用它,它很好地解决了我的问题,而不必用我认为微软应该已经正确实现的东西来感染我的业务逻辑。
答案 2 :(得分:0)
如果您在.Net代码中使用Convert.ToDateTime()
,请检查应用程序托管服务器的日历设置,主要是时区和短日期格式