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)
    );
}

Если вы не используете миграции, проверьте этот вопрос.

Другие вопросы по тегам