2011-02-26 34 views
9

我有一个简单的表,ID(uniqueidentifier),datetime,和一个值。使用数据库生成的GUID和日期时间EF4

我想在数据库上使用getdate()作为记录插入时间,使用newid()作为id。我如何配置实体框架来做到这一点?当我尝试在数据库上分配ID时,我得到:

Violation of PRIMARY KEY constraint 'PK_Random'. Cannot insert duplicate key in object 'dbo.Random'. The duplicate key value is (00000000-0000-0000-0000-000000000000). 

回答

22

如果您先使用代码。请将以下内容添加到您的guid中。

[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
public Guid guId { get; set; } 

这将启用sql server side guid generation。希望能帮助到你。

+3

请注意,这需要引用命名空间'System.ComponentModel.DataAnnotations.Schema' – Crazometer 2016-04-06 05:19:09

7

只是为了补充,因为@lunateck答案帮助了我。另一种方式(如果您使用的是数据库优先)是:

  1. 打开您的edmx文件。
  2. 右键单击 - >模型浏览器
  3. 右键单击Guid列 - >属性 - >将StoreGeneratedPattern更改为Identity
+0

Booya - 那是一个。 – 2014-09-04 12:19:55