Entity Framework 5 сначала кодирует newsequentialid() как PK
Как я могу использовать newsequentialid()
как значение по умолчанию в столбце PK?
У меня есть эта аннотация:
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
Но это будет генерировать случайные направляющие, которые я хотел бы иметь последовательные направляющие.
Я могу вручную установить базу данных newsequentialid()
в качестве значения по умолчанию, но нет лучшего варианта? Или команда EF забыла об этой опции?
1 ответ
Решение
Если вы используете миграцию, вы можете просто изменить миграцию на основе кода, чтобы использовать newsequentialid()
как DefaultValueSql
,
public override void Up() {
CreateTable(
"SomeTable",
c => new {
Id = c.Guid(nullable: false, defaultValueSql: "newsequentialid()"),
})
.PrimaryKey(t => t.Id)
);
}
Если вы не используете миграции, проверьте этот вопрос.