2012-10-22 10 views
7

newsequentialid()をPK列のデフォルト値として使用するにはどうすればよいですか?エンティティフレームワーク5のコードが最初にnewsequentialid()としてPK

私はこの注釈があります

[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] 

をしかし、これは私がシーケンシャルGUID年代がしたいのGUIDのランダムに生成されます。

デフォルト値としてnewsequentialid()にデータベースを手動で設定できますが、それ以上のオプションはありませんか?あるいは、EFチームはこのオプションを忘れましたか?

答えて

14

移行を使用している場合は、newsequentialid()DefaultValueSqlとするコードベースの移行を単純に変更できるはずです。

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

あなたはマイグレーションを使用していない場合は、このquestionを確認してください。

+0

KeyとDatabaseGeneratedのカンマを追加して別々に追加しても機能しない場合は、別々のカンマで区切ります –

関連する問題