实体框架代码优先:使用种子和增量值初始化标识列

时间:2019-01-07 17:01:02

标签: c# sql entity-framework

我有一个新的数据库,希望设置小数标识列(下面的示例列)的种子和增量。

[Key, Column("id")]
public decimal id { get; set; }

是否可以设置种子和增量值?我需要修改OnCreating()方法吗?

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式为Seed列添加Identity

请考虑以下Student

public class Student
{
   [Key, Column("Id")]
   public int Id { get; set; }
   public string Name { get; set; }
}

现在,在其Migration方法上,添加SQL命令DBCC CHECKIDENT来设置100的种子值

public override void Up()
{
    CreateTable(
        "dbo.Students",
        c => new
            {
                Id = c.Int(nullable: false, identity: true),
                Name = c.String(),
            })
        .PrimaryKey(t => t.Id);

    Sql("DBCC CHECKIDENT ('dbo.Students', RESEED, 100);");
}

public override void Down()
{
    DropTable("dbo.Students");
}

有关更改身份增量值的信息,请参阅this以获得想法。