2012-03-09 28 views
7

Bir varlık Kullanıcı var. Her Kullanıcının birçok Arkadaş ve Öğretmene sahip olması gerekiyor. EF Kodu ile Önce İstediğimi nasıl elde edeceğime dair biraz kafam karıştı. Benlik referans örneklerini gördüm, ama çoktan çoğa değil.Entity Framework çoktan çoğa öznitelelik

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 
} 

ve ModelBuilder: Örneğin bir bu b ile arkadaşı ise (Arkadaş vardır benim durumumda, kendini referans olan bir varlık nasıl oluşturulur

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

b demektir a) ve Öğretmenlerle arkadaş (eğer b'nin öğretmeni ise, b öğrencisi a)?

Benzer bir konu zaten varsa üzgünüz. Herhangi bir yardım büyük beğeni topluyor.

+0

Buna ne dersin? http://blogs.msdn.com/b/wriju/archive/2011/05/14/code-first-ef-4-1-building-many-to-many-relationship.aspx –

+0

Örnek sadece birçok Öz-referans olmadan, çok kolay olan ve bir model Oluşturucusu gerektirmeyen bire çok. Her neyse yardımın için teşekkür ederim. – Unknown

cevap

10

Tamam, çünkü birçok insan bunu yanıtladı;), biraz daha araştırdım ve davamın çözümünü buldum. varlık gibi görünüyor:

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(); 

Ve sonunda yardımcı yöntemler dost ve yapılan biriyle arkadaş olunca seninle arkadaşı olan emin olun BecomeTeacherStudent, (ve öğretmen-öğrenci için ilgili şey.

+0

Bu, muhtemelen size garip bir tablo ve anahtar isimler verecektir, bunun nasıl çözüleceğine dair ayrıntılar için http://msdn.microsoft.com/en-us/data/jj591620.aspx adresini ziyaret edin. – bbodenmiller

+0

Bunu "DataAnnotations" ile yapılandırmanın bir yolu var mı? – Shimmy