使用数据库生成的GUID和日期时间与EF4

Den*_*ail 10 entity-framework sql-server-2008 entity-framework-4

我有一个带ID(a uniqueidentifier),a datetime和值的简单表.

我想getdate()在数据库上使用记录插入时间和newid()id.如何配置实体框架来执行此操作?当我尝试在DB上分配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).
Run Code Online (Sandbox Code Playgroud)

小智 22

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

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid guId { get; set; }
Run Code Online (Sandbox Code Playgroud)

这将启用sql server side guid生成.希望能帮助到你.

  • 请注意,这需要引用名称空间`System.ComponentModel.DataAnnotations.Schema` (3认同)

小智 7

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

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