2012-03-09 12 views
7

मेरे पास एक इकाई उपयोगकर्ता है। प्रत्येक उपयोगकर्ता को कई मित्र और शिक्षक होने चाहिए। ईएफ कोड के साथ पहले मैं जो कुछ हासिल करना चाहता हूं, उस पर थोड़ा उलझन में हूं। मैंने आत्म संदर्भ के उदाहरण देखा, लेकिन कई से ज्यादा नहीं।इकाई फ्रेमवर्क कई से कई आत्म-संदर्भ

public class Employee 
{ 
    #region Properties 

    public int EmployeeID { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 

    public int? ManagerID { get; set; } 
    public Employee Manager { get; set; } 

    #endregion 
} 

और modelBuilder: उदाहरण के लिए:

modelBuilder.Entity<Employee>(). 
     HasOptional(e => e.Manager). 
     WithMany(). 
     HasForeignKey(m => m.ManagerID); 

मेरे मामले में, जहां दोस्त देखते हैं में आत्म-संदर्भ के साथ एक इकाई बनाने के लिए कैसे (यदि एक इस ख के साथ दोस्त है इसका मतलब है ख है कि ए के साथ दोस्त) और शिक्षक (यदि बी का शिक्षक है, बी एक छात्र है)?

क्षमा करें अगर पहले से ही एक ही धागा मौजूद है। किसी भी मदद की बहुत सराहना की है।

+0

इस बारे में कैसे? http://blogs.msdn.com/b/wriju/archive/2011/05/14/code- फर्स्ट-ef-4-1-building- कई-to-many-relationship.aspx –

+0

उदाहरण केवल कई- बहुत से, आत्म-संदर्भ के बिना, जो काफी आसान है और मॉडलबिल्डर की भी आवश्यकता नहीं है। वैसे भी आपकी मदद के लिए धन्यवाद। – Unknown

उत्तर

10

ठीक है, इसलिए बहुत से लोगों ने इसका उत्तर दिया;), मैंने थोड़ा और खोज की और मुझे अपने मामले का समाधान मिला। इकाई लगता है:

public class User 
{ 
    public int ID { get; set; } 
    public string UserName { get; set; } 

    public virtual ICollection<User> Friends { get; set; } 
} 

modelBuilder:

modelBuilder.Entity<User>() 
       .HasMany(x => x.Friends) 
       .WithMany(); 

और अंत में मैं सहायक तरीकों से दोस्ती और बनाया BecomeTeacherStudent, जो लगता है कि जब आप किसी के साथ दोस्त बन वह आप के साथ दोस्त बन जाता है (और शिक्षक-छात्र के लिए संबंधित बात)।

+0

इससे आपको कुछ अजीब टेबल और मुख्य नाम मिलेंगे, इसे संबोधित करने के तरीके के विवरण के लिए http://msdn.microsoft.com/en-us/data/jj591620.aspx देखें। – bbodenmiller

+0

क्या 'डेटाअनोटेशन' के साथ इसे कॉन्फ़िगर करने का कोई तरीका है? – Shimmy

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