我有这个简单的模型:
public class Code{
public int Id { get; set; }
public string Name { get; set; }
}
在我的域名中。 Id
是主键。生成类的迁移将导致此代码:
CreateTable(
"dbo.Codes",
c => new {
Id = c.Int(nullable: false, identity: true),
Name = c.String(),
})
.PrimaryKey(t => t.Id);
这显然会生成这个T-SQL脚本:
CREATE TABLE [dbo].[Codes] (
[Id] [int] IDENTITY NOT NULL,
[Name] [nvarchar](max),
CONSTRAINT [PK_dbo.Codes] PRIMARY KEY ([Id])
)
行。问题是我想自定义标识列的种子和增量值。要做到这一点,生成的脚本需要这个(例如,100000作为种子,23作为增量值):
CREATE TABLE [dbo].[Codes] (
[Id] [int] IDENTITY (100000, 23) NOT NULL,
[Name] [nvarchar](max),
CONSTRAINT [PK_dbo.Codes] PRIMARY KEY ([Id])
)
所以,问题是,如何修改生成的迁移以接受(100000, 23)
?有什么办法吗?
更新
似乎我必须注意一些问题(我的英语太糟糕了,如果有些要点没有清除,请原谅我。)
我了解DBCC CHECKIDENT
命令。这不是答案。这是因为:
它只是重新播种标识列。不自定义增量值。
在创建表格后,它可以正常工作。在我的情况下,我在创建表时尝试完成这项工作。
为了重置增量值,需要重新创建表 - 据我所知。我不是试图重新设定增量,也不是种子。我试图设置它们。
问题不在于改变db,还是使用SQL命令等。我很好奇是否可以修改迁移以自定义生成的SQL。