2011-02-26 70 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