Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 753
Roger Far Avatar asked Oct 22 '12 13:10

Roger Far


1 Answers

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.

like image 101
Ladislav Mrnka Avatar answered Nov 16 '22 10:11

Ladislav Mrnka