7

How can I use newsequentialid() as default value in the PK column?

I have this annotation:

[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]

But this will generate random guid's I would like to have sequential guid's.

I can set by hand the database to newsequentialid() as default value, but is there no better option? Or did the EF team forget about this option?

abatishchev
  • 95,331
  • 80
  • 293
  • 426
Roger Far
  • 2,115
  • 3
  • 35
  • 64

1 Answers1

15

If you are using migrations you should be able to simply modify code based migration to use newsequentialid() as DefaultValueSql.

public override void Up() {
    CreateTable(
        "SomeTable",
         c => new {
            Id = c.Guid(nullable: false, defaultValueSql: "newsequentialid()"),
         })
         .PrimaryKey(t => t.Id)
    );
}

If you are not using migrations check this question.

Community
  • 1
  • 1
Ladislav Mrnka
  • 355,666
  • 57
  • 651
  • 662
  • i had to add Key and DatabaseGenerated comma seperated to make it work, if they are added seperately, then it not works – Ehsan Sajjad Jun 17 '16 at 02:10