Sto utilizzando EF5
e Code First
per creare il database. Quando Entity ha Id field
, EF crea tale campo come Primary Key
nel database e imposta su true
(valore generato automaticamente). Come impostare Identity specification to false by default
?Specificazione identità impostata su false
7
A
risposta
19
Se non si desidera utilizzare le chiavi di identità sono disponibili diverse opzioni.
Opzione 1: È possibile attivare globalmente off questa funzione rimuovendo StoreGeneratedIdentityKeyConvention
:
public class YourContext : DbContext {
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Conventions.Remove<StoreGeneratedIdentityKeyConvention>();
}
}
È possibile selezionare selettivamente tasti e modificare il comportamento per loro da entrambi gli attributi applicare o mappatura fluente.
Opzione 2: Abilità:
public class MyEntity {
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
}
Opzione 3: API Ottima:
public class YourContext : DbContext {
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Entity<MyEntity>()
.Property(e => e.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
}
}