2016-09-30 2 views
6

जोड़ते समय त्रुटि परिभाषित करने की प्राथमिक कुंजी की आवश्यकता है, मैं 2 अलग-अलग Dbcontexts का उपयोग कर रहा हूं। मैं 2 अलग-अलग डेटाबेस उपयोगकर्ता और mycontext का उपयोग करना चाहता हूं। ऐसा करने के दौरान मुझे एक त्रुटि मिल रही है इकाई प्रकार 'माइक्रोसॉफ्ट.एस्पनेटकोर.इडेन्टिटी.इन्टिटीफ्रेमवर्ककोर.इडेन्टिटी यूसरलॉगिन' को परिभाषित करने के लिए प्राथमिक कुंजी की आवश्यकता होती है। मुझे लगता है कि IdentityUser के साथ कुछ गड़बड़ है कृपया मुझे बताएं कि मैं अपना कोड कहां बदल सकता हूं ताकि मैं माइग्रेशन जोड़ सकूं।पहचान UserLogin <string> 'माइग्रेशन

मेरे Dbcontext वर्ग:

class MyContext : DbContext 
{ 
    public DbSet<Post> Posts { get; set; } 
    public DbSet<Tag> Tags { get; set; } 

    protected override void OnModelCreating(ModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 

     modelBuilder.Entity<PostTag>() 
      .HasKey(t => new { t.PostId, t.TagId }); 

     modelBuilder.Entity<PostTag>() 
      .HasOne(pt => pt.Post) 
      .WithMany(p => p.PostTags) 
      .HasForeignKey(pt => pt.PostId); 

     modelBuilder.Entity<PostTag>() 
      .HasOne(pt => pt.Tag) 
      .WithMany(t => t.PostTags) 
      .HasForeignKey(pt => pt.TagId); 
    } 
} 

public class Post 
{ 
    public int PostId { get; set; } 
    public string Title { get; set; } 
    public AppUser User {get; set;} 
    public string Content { get; set; } 

    public List<PostTag> PostTags { get; set; } 
} 

public class Tag 
{ 
    public string TagId { get; set; } 

    public List<PostTag> PostTags { get; set; } 
} 

public class PostTag 
{ 
    public int PostId { get; set; } 
    public Post Post { get; set; } 

    public string TagId { get; set; } 
    public Tag Tag { get; set; } 
} 

और AppUser वर्ग:

public class AppUser : IdentityUser 
{ 
    //some other propeties 
} 

जब मैं प्रवास निम्नलिखित त्रुटि होती जोड़े की कोशिश करो।

The entity type 'Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserLogin<string>' requires a primary key to be defined. 

मुझे मुद्दा ..

+0

इसे आजमाएं, मुझे एक ही समस्या थी दो dbcontext https://stackoverflow.com/a/40824620/7046796 – Ahmad

उत्तर

5

समस्या AppUser IdentityUser और उनके प्राथमिक कुंजी से विरासत में मिली है dbcontext की विधि OnModelCreating में मैप नहीं कर रहे हैं को हल करने समाधान दे।

संकल्प के साथ पहले से ही एक पोस्ट उपलब्ध है। नीचे दिए गए लिंक

EntityType 'IdentityUserLogin' has no key defined. Define the key for this EntityType

आशा इस मदद करता है पर जाएँ।

13

संक्षेप के लिए लिंक को कम करने के लिए, इस प्रयास करें:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 

    ... 

अधिक के लिए लिंक ऊपर देखें।

0

हाँ! जोड़ना:

base.OnModelCreating(modelBuilder); 

मेरी सभी समस्याओं का समाधान! अब मैं एक खुश आदमी हूँ।

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