【发布时间】:2011-12-24 00:51:09
【问题描述】:
我有一个示例类book:
public class Book
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public DateTime DateAdded { get; set; }
}
当我尝试将新的 book 添加到 BookDb 上下文时...
using (BookDb db = new BookDb())
{
Book book = new Book {
Name = "Some name",
DateAdded = DateTime.Now
};
db.Books.Add(book);
db.SaveChanges();
}
...抛出一个错误:
System.Data.SqlClient.SqlException:一个datetime2数据的转换 type 到 datetime 数据类型导致超出范围的值。这 语句已终止。
我发现造成这种情况的原因是 .NET 和 SQL Server 之间的 datetime 类型不兼容。有一种方法可以告诉 EF 在传统的实体框架中使用 SQL Server 的格式,但是 我该如何在 Code-First 实体框架中做到这一点?
我在 .NET 4(MVC 3 Web 应用程序)和 SQL Server 2008 Express 上使用 EF4。
【问题讨论】:
-
您是否将计算机的时钟设置为 1750 年或更早?
-
我不是认真的 :) 看我的回答。
标签: datetime entity-framework-4 ef-code-first