5

लिए कई मैं इस तरह अनेक संबंध बनाने के लिए कई के साथ दो संस्थाओं है:एफई 4.1 आर सी एफई में कई रिश्ते सीएफ

class author 
{ 
    public int AuthorID{get;set;} 
    public string Name{get;set;} 
    public virtual ICollection<book> books{get;set;} 
} 
class book 
{ 
    public int BookID{get;set;} 
    public string Name{get;set;} 
public virtual ICollection<author> authors{get;set;} 

} 

और मैं एक मध्यवर्ती मेज Bookauthor नामित इस तरह परिभाषित किया है:

BookAuthor: int 
    int AuthorID 
    int BookID 

FluentAPI

धन्यवाद का उपयोग करके इसे कैसे मैप करें!

उत्तर

8

यह edmx साथ लेकिन एफई 4.1 धाराप्रवाह एपीआई साथ समस्याग्रस्त था आप इसे मैप कर सकते हैं का समर्थन करता है BookAuthor कॉलम मानचित्र न करें। वह कॉलम ईएफ के लिए अज्ञात है और ऑटो वृद्धि होनी चाहिए।

यह स्पष्ट रूप से कोड-प्रथम दृष्टिकोण के साथ काम नहीं कर सकता है, लेकिन केवल तभी यदि आप मौजूदा डेटाबेस के विरुद्ध फ़्लुएंट एपीआई का उपयोग करते हैं।

+0

धन्यवाद! अब यह काम कर रहा है! –

+0

यह काम कर रहा है? वास्तव में? किस स्थिति के साथ? 4.1 ऑनमोडेल क्रिएटिंग ओवरराइड के बारे में परवाह नहीं करता है। मैं वास्तव में सदमे रह रहा हूँ। ToTable ("BookAuthor") एक टेबल नहीं बनाता है जिसे BookAuthor द्वारा कॉल किया जाता है। –

0

मुझे नहीं लगता कि ईएफ आपको कई से अधिक जंक्शन तालिकाओं में एक अलग आईडी रखने की अनुमति देता है।

विकल्प सिर्फ एक इकाई के रूप में BookAuthor मैपिंग कर रहा है।

modelBuilder.Entity<book>() 
      .HasMany(b => b.authors) 
      .WithMany(a => a.books) 
      .Map(m => m.MapLeftKey("BookID") 
        .MapRightKey("AuthorID") 
        .ToTable("BookAuthor")); 

आप मुझे देख सकते हैं:

एक तरफ ध्यान दें पर, NHibernate इस संरचना का उपयोग कर एक idbag

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