2010-06-30 16 views
9

EF4 Code-First CTP3'teki çoktan çoğa ilişkisini nasıl temsil ediyorsunuz?Code-First'de Çoktan-Çok İlişki EF4

Örneğin aşağıdaki sınıfları varsa: veritabanında

class User 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public ICollection<Profile> Profiles { get; set; } 
} 

class Profile 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

Profil için Kullanıcı ve FK FK sahip bir UserProfiles masa var. Bunu nasıl haritalandırabilirim?

DÜZENLEME: Şu anda Profile üzerinde ICollection<User> özelliğine sahip olmanın nasıl yapıldığını anlıyorum, ancak "Kullanıcıların çok sayıda profili" olması gerektiğinde gerçekten bir karşıt gezinme özelliğine sahip olmak istemiyorum.

cevap

8

DÜZENLEME: CTP4 serbest bırakıldı geç dün (14 Temmuz 2010) ve orada şimdi bu desteği:

modelBuilder.Entity<Post>().HasMany(p => p.Tags).WithMany();


Ben bu anda olmadığını nihayet öğrendim mümkün. Microsoft bu özelliği (yalnızca bir gezinme özelliği) eklemek istiyor.

fazla bilgi için MSDN forumlarında bu bağlantıya bakın: Her iki tarafta da navigasyon özelliklerini içerir ve (tembel yükleme kullanmaya)

class User 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public virtual ICollection<Profile> Profiles { get; set; } 
} 

class Profile 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public virtual ICollection<User> Users { get; set; } 
} 

onları sanal yapmalıdır birçok ilişkilere çoğu ile http://social.msdn.microsoft.com/Forums/en/adonetefx/thread/6920db2b-88c7-4bea-ac89-4809882cff8f

+3

Nihayet bunu uyguladıklarına sevindim. Bu sorunu çözmek için kendim istenmeyen gezinme özellikleri eklemek zorunda kaldım. Kod-İlk güzel bir şekilde geliyor! – djskinner

+0

@Daniel - Anlaşmalı. – TheCloudlessSky

5

Daha sonra bu kurulumla bir çok ilaca ilişkinizi tanımlayabilirsiniz (aynı zamanda varlık çerçevesinin sizin için bunu yapmasına izin verebilirsiniz, ancak kullandığı adlandırma kurallarını beğenmiyorum).

Bu, UserID ve UserID olarak KeysID olarak UserProfiles adlı bir tablo verecektir.