2013-02-12 33 views
7

Veritabanı oluşturmak için EF5 ve Code First kullanıyorum. Varlık Id field olduğunda, EF veritabanında Primary Key gibi bir alan yaratır ve değerini true olarak ayarlayın (otomatik oluşturulan değer). Identity specification to false by default nasıl ayarlanır?Kimlik belirtimi false olarak ayarlandı

cevap

19

Kimlik anahtarlarını kullanmak istemiyorsanız, birkaç seçeneğiniz vardır.

Seçenek 1: Sen küresel StoreGeneratedIdentityKeyConvention kaldırarak bu özelliği kapatabilirsiniz:

public class YourContext : DbContext { 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) { 
     modelBuilder.Conventions.Remove<StoreGeneratedIdentityKeyConvention>(); 
    } 
} 

Sen seçici anahtarları seçin ve ya uygulayarak nitelik veya akıcı haritalama kendileri için davranışını değiştirebilir.

Seçenek 2: Özellik:

public class MyEntity { 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public int Id { get; set; }   
} 

Seçenek 3: Akıcı API:

public class YourContext : DbContext { 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) { 
     modelBuilder.Entity<MyEntity>() 
        .Property(e => e.Id) 
        .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 
    } 
} 
İlgili konular