Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

AspNetUsers (पहचान) और एक कस्टम तालिका के बीच एक से कई संबंध

मैंने कई परियोजनाओं पर ठीक यही किया है

उदाहरण के लिए मेरे पास एएसपीनेट यूज़र से अधिसूचनाओं में से कई रिश्तों में से एक है। तो मेरे ApplicationUser वर्ग में IdentityModels.cs के अंदर मेरे पास

. है
public virtual ICollection<Notification> Notifications { get; set; }

माई नोटिफिकेशन क्लास का उल्टा है

public virtual ApplicationUser ApplicationUser { get; set; }

डिफ़ॉल्ट रूप से EF तब अधिसूचना से AspNetUsers को एक कैस्केड डिलीट बना देगा जो मैं नहीं चाहता - इसलिए मेरे पास यह मेरे संदर्भ वर्ग में भी है

modelBuilder.Entity<Notification>()
    .HasRequired(n => n.ApplicationUser)
    .WithMany(a => a.Notifications)
    .HasForeignKey(n => n.ApplicationUserId)
    .WillCascadeOnDelete(false);

बस याद रखें कि AspNetUSers की परिभाषा को IdentityModels.cs के अंदर ApplicationUser वर्ग में विस्तारित किया गया है जो आपके लिए विज़ुअल स्टूडियो मचान द्वारा उत्पन्न किया गया है। फिर इसे अपने ऐप में किसी भी अन्य वर्ग/तालिका के रूप में मानें

अद्यतन - यहां पूर्ण मॉडलों के उदाहरण दिए गए हैं

public class ApplicationUser : IdentityUser
{

    [StringLength(250, ErrorMessage = "About is limited to 250 characters in length.")]
    public string About { get; set; }

    [StringLength(250, ErrorMessage = "Name is limited to 250 characters in length.", MinimumLength=3)]
    public string Name { get; set; }

    public DateTime DateRegistered { get; set; }
    public string ImageUrl { get; set; }

    public virtual ICollection<Notification> Notifications { get; set; }

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {
        // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
        var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
        // Add custom user claims here
        return userIdentity;
    }
}


public class Notification
{
    public int ID { get; set; }

    public int? CommentId { get; set; }

    public string ApplicationUserId { get; set; }

    public DateTime DateTime { get; set; }

    public bool Viewed { get; set; }

    public virtual ApplicationUser ApplicationUser { get; set; }

    public virtual Comment Comment { get; set; }

}

}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या डोमेन के बजाय स्थानीयहोस्ट पर MySQL को कनेक्ट/उपयोग करना तेज़ है (भले ही डोमेन उसी कंप्यूटर पर हल हो जाए)?

  2. घातक त्रुटि:mysqld को रूट के रूप में चलाने का तरीका जानने के लिए कृपया मैनुअल का सुरक्षा अनुभाग पढ़ें

  3. किसी अन्य संग्रहीत कार्यविधि में mysql संग्रहीत कार्यविधि के परिणाम सेट का उपयोग करें

  4. जावा से एक MySQL संग्रहीत कार्यविधि निष्पादित नहीं कर सकता

  5. sql में GROUP BY और ORDER BY में क्या अंतर है?