11

मैं अंतर्निहित उपयोगकर्ता प्रमाणीकरण के साथ एएसपी.नेट एमवीसी 5 का उपयोग कर एंटिटी फ्रेमवर्क 6 में सी # का उपयोग करके एक से एक रिश्ते बनाने की कोशिश कर रहा हूं।एएसपी.नेट एमवीसी 5, इकाई फ्रेमवर्क 6 में धाराप्रवाह एपीआई का उपयोग करके मैं टेबल कैसे मैप कर सकता हूं?

मैं इकाई फ्रेमवर्क बनाता है कि डिफ़ॉल्ट के साथ तालिकाओं और कनेक्शन बनाने में सक्षम हूँ। लेकिन जब मैं धाराप्रवाह एपीआई का उपयोग करने की कोशिश करता हूं .... अधिक विशेष रूप से जब मैं मॉडल बनाने पर भी उपयोग करता हूं तो पैकेज प्रबंधक कंसोल का उपयोग करके मेरा डेटाबेस माइग्रेशन खाली हो जाता है। मैं अपने एक से एक रिश्ते को कैसे मैप कर सकता हूं?

मेरे त्रुटि:

//error 
//my.Models.IdentityUserLogin: : EntityType 'IdentityUserLogin' has no key defined. //Define the key for this EntityType. 
//my.Models.IdentityUserRole: : EntityType 'IdentityUserRole' has no key defined. //Define the key for this EntityType. 
//IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' is based on type //'IdentityUserLogin' that has no keys defined. 
//IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' is based on type //'IdentityUserRole' that has no keys defined. 

मेरे कोड:

namespace my.Models 
{ 

    public class ApplicationUser : IdentityUser 
    { 
    } 

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
    { 
     public ApplicationDbContext() 
      : base("DefaultConnection") 
     { 
     } 

     public DbSet<EngineeringProject> EngineeringProjects { get; set; } 

     public DbSet<EngineeringProject> EngineeringDesigns { get; set; } 

     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      modelBuilder.Configurations.Add(new EngineeringDesignMap()); 
      modelBuilder.Configurations.Add(new EngineeringProjectMap()); 
     } 

    } 
} 

namespace my.Models.Mapping 
{ 
    public class EngineeringProjectMap : EntityTypeConfiguration<EngineeringProject> 
    { 
     public EngineeringProjectMap() 
     { 
      this.HasRequired(t => t.EngineeringPd) 
       .WithOptional(t => t.EngineeringProject); 
      this.HasRequired(t => t.EngineeringProjectCategory) 
       .WithMany(t => t.EngineeringProjects) 
       .HasForeignKey(d => d.CategoryId); 
     } 
    } 
} 
+0

_has कोई कुंजी परिभाषित नहीं है क्या आपको स्पष्ट नहीं है? 'पहचानकर्ता' जैसा दिखता है? –

उत्तर

18

त्रुटियां होती हैं क्योंकि व्युत्पन्न पहचान तालिका व्युत्पन्न संदर्भ में मैपिंग कर रही है। इसे नए ऑनमोडेल क्रिएटिंग ओवरराइड फ़ंक्शन के अंदर बुलाया जाना चाहिए। ऐसा करने के लिए नीचे बस के रूप में अपनी विधि के लिए आधार .OnModelCreating (modelbuilder) जोड़ें।

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    base.OnModelCreating(modelBuilder); // <-- This is the important part! 
    modelBuilder.Configurations.Add(new EngineeringDesignMap()); 
    modelBuilder.Configurations.Add(new EngineeringProjectMap()); 
} 
+1

इसने मुझे समाधान स्पष्ट कर दिया। धन्यवाद! –

7

ऐसा लगता है कि आप अपने DbContext में base.OnModelCreating के लिए एक कॉल याद कर रहे हैं।

संबंधित मुद्दे