我有一个示例类book
:
public class Book
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public DateTime DateAdded { get; set; }
}
当我试图向BookDb
上下文中添加一个新的book
时...
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数据类型转换为datetime数据类型时,结果超出范围。语句已终止。
我发现原因是.NET和SQL Server之间不兼容的datetime
类型。在传统的Entity Framework中,有一种方法可以告诉EF使用SQL Server的格式,但是在Code-First Entity Framework中该怎么做呢?
我正在使用EF4和.NET 4(MVC 3 Web应用程序)以及SQL Server 2008 Express。