实体框架 - 使用GUID作为EntityKey的SaveChanges

entity-framework guid

我有一个SQL Server 2008数据库表使用uniqueidentifier作为主键。在插入时,使用newid()函数在数据库端生成密钥。

这适用于ADO.NET。但是当我将此表设置为Entity Framework 4模型中的实体时,就会出现问题。我能够很好地查询实体,但是在创建新实体并在上下文中调用SaveChanges()时,数据库上生成的uniqueidentifier全部为零。

我知道EF v1存在一个问题,即这种情况不起作用,需要在调用SaveChanges之前在客户端上创建GUID。但是,我曾在许多地方读到他们计划在EF 4中解决这个问题。

我的问题 - 在EF4中仍然不支持这种情况(DB端生成uniqueidentifier)吗?我们仍然坚持在客户端上生成GUID吗?


热门答案

是的,这在EF 4 中已更改。 您现在可以使用服务器生成的GUID 。 @MusiGenesis,服务器生成的GUID有一些优点;它们可以是顺序的,例如




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因