Я использую EF5
и Code First
для создания базы данных. Когда Entity имеет Id field
, EF создайте в базе данных Primary Key
и установите в true
(автоматически сгенерированное значение). Как установить Identity specification to false by default
?Спецификация идентификации установлена на false
7
A
ответ
19
Если вы не хотите использовать ключи идентификации, у вас есть несколько вариантов.
Вариант 1: Вы можете глобально отключить эту функцию, удаляя StoreGeneratedIdentityKeyConvention
:
public class YourContext : DbContext {
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Conventions.Remove<StoreGeneratedIdentityKeyConvention>();
}
}
Вы можете выборочно выбрать ключи и изменить поведение для них либо применения атрибута или беглого отображения.
Вариант 2: Атрибут:
public class MyEntity {
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
}
Вариант 3: свободный API:
public class YourContext : DbContext {
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Entity<MyEntity>()
.Property(e => e.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
}
}