Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 将数据库生成的GUID和日期时间与EF4一起使用_Entity Framework_Sql Server 2008_Entity Framework 4 - Fatal编程技术网

Entity framework 将数据库生成的GUID和日期时间与EF4一起使用

Entity framework 将数据库生成的GUID和日期时间与EF4一起使用,entity-framework,sql-server-2008,entity-framework-4,Entity Framework,Sql Server 2008,Entity Framework 4,我有一个简单的表,它有一个ID(一个uniqueidentifier),一个datetime,还有一个值 我想在数据库上使用getdate()作为记录插入时间,使用newid()作为id。如何配置entity framework来实现这一点?当我尝试在数据库上分配id时,我得到: 违反主键约束“PK_Random”。无法在对象“dbo.Random”中插入重复键。重复的键值为(00000000-0000-0000-0000-000000000000)。 如果您先使用代码。请将以下内容添加到您的g

我有一个简单的表,它有一个ID(一个
uniqueidentifier
),一个
datetime
,还有一个值

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

违反主键约束“PK_Random”。无法在对象“dbo.Random”中插入重复键。重复的键值为(00000000-0000-0000-0000-000000000000)。

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

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

这将启用sql server端guid生成。希望能有所帮助。

只是想补充一下,因为@lunateck answer帮助了我。另一种方法(如果您首先使用数据库)是:

  • 打开您的
    edmx
    文件
  • 右键单击->模型浏览器
  • 右键单击Guid列->属性->将
    StoreGeneratedPattern
    更改为
    Identity

  • Booya-就是这个。请注意,这需要引用命名空间
    System.ComponentModel.DataAnnotations.Schema
    我被告知,如果设置了
    DatabaseGeneratedOption.Identity
    ,这意味着您无法手动设置Guid。如果必须同步数据库,这可能是一个问题。