2012-10-22 21 views
7

Come è possibile utilizzare newsequentialid() come valore predefinito nella colonna PK?Entity Framework 5 code first newsequentialid() come PK

ho questa annotazione:

[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] 

Ma questo genererà GUID casuale di che vorrei avere sequenziali GUID.

Posso impostare manualmente il database su newsequentialid() come valore predefinito, ma non esiste un'opzione migliore? O il team EF ha dimenticato questa opzione?

risposta

14

Se si utilizzano le migrazioni, si dovrebbe essere in grado di modificare semplicemente la migrazione basata su codice per utilizzare newsequentialid() come DefaultValueSql.

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

Se non si utilizza la migrazione, controllare questo question.

+0

ho dovuto aggiungere la virgola Key e DatabaseGenerated separati per farlo funzionare, se vengono aggiunti separatamente, quindi non funziona –

Problemi correlati