Search code examples
c#entity-frameworknewsequentialid

Entity Framework 5 code first newsequentialid() as PK


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?


Solution

  • 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.