2013-02-12 9 views
7

पर सेट है मैं डेटाबेस बनाने के लिए EF5 और Code First का उपयोग कर रहा हूं। जब इकाई में Id field है, तो EF डेटाबेस में Primary Key जैसे फ़ील्ड को बनाते हैं और से true (ऑटो जनरेटेड मान) सेट करते हैं। Identity specification to false by default कैसे सेट करें?पहचान विनिर्देश झूठी

उत्तर

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: Fluent एपीआई:

public class YourContext : DbContext { 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) { 
     modelBuilder.Entity<MyEntity>() 
        .Property(e => e.Id) 
        .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 
    } 
} 
संबंधित मुद्दे