首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用实体框架管理GetDate()

如何使用实体框架管理GetDate()
EN

Stack Overflow用户
提问于 2010-04-30 04:28:59
回答 4查看 15.9K关注 0票数 20

我的一个数据库表中有一列如下所示

代码语言:javascript
复制
DateCreated, datetime, default(GetDate()), not null

我正在尝试使用实体框架在此表上执行插入操作,如下所示……

代码语言:javascript
复制
        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();

当我运行这段代码时,我得到以下错误

代码语言:javascript
复制
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...同样的事情,然后身份...同样的事情。有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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

票数 2
EN

Stack Overflow用户

发布于 2010-07-01 03:18:20

您必须手动编辑edmx xml,并将SSDL StoreGeneratedPattern属性设置为identity或computed。但是,每当您通过设计器更新您的edmx时,您所做的更改将被覆盖。

这是一个已知的问题。有关更多详细信息,请参阅以下链接:

Microsoft Connect Ticket

Using a GUID as an EntityKey in Entity Framework 4

票数 9
EN

Stack Overflow用户

发布于 2012-07-10 16:12:52

我也有同样的问题!对我来说,它是这样工作的:

数据库MS SQL Server express:

代码语言:javascript
复制
[RowTime]  [datetime2](7)  NOT NULL

ALTER TABLE [dbo].[Table_1] ADD  CONSTRAINT [DF_Table_1_RowTime]  DEFAULT (getdate()) FOR [RowTime]
GO

然后将表从数据库导入到我的实体模型中。实体将不会实现默认值!因此,您必须将列的StoreGeneratedPattern设置为Computed。那么实体将不再有任何默认值。

以下各项的组合:

代码语言:javascript
复制
datetime2,
NOT NULL, 
StoreGeneratedPattern=Computed

对我很管用!

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2740572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档