有没有办法永久更改标识列的标识种子?使用DBCC CHECKIDENT似乎只是设置了last_value.如果表被截断,则重置所有值.
dbcc checkident ('__Test_SeedIdent', reseed, 1000)
select name, seed_value, increment_value, last_value
from sys.identity_columns
where [object_id] = OBJECT_ID('__Test_SeedIdent');
Run Code Online (Sandbox Code Playgroud)
回报
name seed_value increment_value last_value
-------------------------------------------------
idIdent 1 1 1000
Run Code Online (Sandbox Code Playgroud)
我希望有一些语法
alter table dbo.__Test_SeedIdent alter column idIdent [int] identity(1000,1) NOT NULL
Run Code Online (Sandbox Code Playgroud)
会存在.
是否有必要创建一个新列,移动值,删除原始列并重命名新列?
一年前提出的这个问题是类似的: 实体框架4是否支持像NHibernate这样的id值的生成器?
但我想知道的是,代码首先是CTP是否增加了对身份生成策略的支持.如果没有,有没有人知道EF中的一个很好的扩展点来实现类似的东西?
我目前正在使用使用GUID作为标识符的模型类.使用EF插入时,它们保留其Guid.Empty初始值.我知道您可以为数据库中的列设置默认值,newid()但这会破坏客户端身份生成的目的.
实体框架是否还不够成熟,无法在分布式,断开连接的系统中使用?