我的一个数据库表中有一列如下所示
DateCreated, datetime, default(GetDate()), not null
我正在尝试使用实体框架在此表上执行插入操作,如下所示……
PlaygroundEntities context = new PlaygroundEntities();
Person p = new Person
{
Status = PersonStatus.Alive,
BirthDate = new DateTime(1982,3,18),
Name = "Joe Smith"
};
context.AddToPeople(p);
context.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.
所以我试着把StoreGeneratedPattern设置为computed...同样的事情,然后身份...同样的事情。有什么想法吗?
发布于 2010-04-30 04:34:21
将DateCreated类型更改为datetime2可能会解决此问题。
日期时间2007-05-08 12:35:29.123
datetime2 2007-05-08 12:35:2912345
参考:http://technet.microsoft.com/en-us/library/bb677335.aspx67
发布于 2010-07-01 03:18:20
您必须手动编辑edmx xml,并将SSDL StoreGeneratedPattern属性设置为identity或computed。但是,每当您通过设计器更新您的edmx时,您所做的更改将被覆盖。
这是一个已知的问题。有关更多详细信息,请参阅以下链接:
发布于 2012-07-10 16:12:52
我也有同样的问题!对我来说,它是这样工作的:
数据库MS SQL Server express:
[RowTime] [datetime2](7) NOT NULL
ALTER TABLE [dbo].[Table_1] ADD CONSTRAINT [DF_Table_1_RowTime] DEFAULT (getdate()) FOR [RowTime]
GO
然后将表从数据库导入到我的实体模型中。实体将不会实现默认值!因此,您必须将列的StoreGeneratedPattern设置为Computed。那么实体将不再有任何默认值。
以下各项的组合:
datetime2,
NOT NULL,
StoreGeneratedPattern=Computed
对我很管用!
https://stackoverflow.com/questions/2740572
复制相似问题