如何在PK列中使用newsequentialid()
作为默认值?
我有这个注释:
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
但是这会产生随机的guid,我希望有顺序的guid。
我可以手动将数据库设置为newsequentialid()
作为默认值,但是没有更好的选择吗?或者EF团队忘记了这个选项?
答案 0 :(得分:15)
如果您使用迁移,则应该只需修改基于代码的迁移即可将newsequentialid()
用作DefaultValueSql
。
public override void Up() {
CreateTable(
"SomeTable",
c => new {
Id = c.Guid(nullable: false, defaultValueSql: "newsequentialid()"),
})
.PrimaryKey(t => t.Id)
);
}
如果您不使用迁移,请检查此question。