2010-11-18 11 views
5

मैं वर्तमान में इस तरह घटक नक्शे उपयोग कर रहा हूँ:फ्लुएंट निबर्ननेट - घटकों का संग्रह मैपिंग (मूल्य ऑब्जेक्ट्स)?

public class UserMapping 
{ 
     public UserMapping() 
     { 
      Id(c => c.Id).GeneratedBy.HiLo("100"); 
      Map(c => c.UserName); 
      Component(c => c.Country, CountryComponentMapping.Map); 
     } 
} 


public sealed class CountryComponentMapping 
{ 
    public static void Map(ComponentPart<Country> part) 
    { 
     part.Map(x => x.CountryName) 
     part.Map(x => x.CountryAlpha2) 
    } 
} 

मुझे यह पसंद है क्योंकि मैं केवल एक ही स्थान पर घटक/मूल्य वस्तु के लिए मानचित्रण परिभाषित करने के लिए किया है।

मैं घटक के संग्रह के लिए समान अर्थशास्त्र का उपयोग करने के बारे में कैसे जाउंगा? (उदाहरण के लिए मान लें कि हम इसे उपयोगकर्ता इकाई पर देशों के संग्रह में बदलना चाहते हैं)

+0

घटक, मूल इकाई का हिस्सा हैं Fluent डॉक्स जहां पता ग्राहक का एक घटक है में बुनियादी उदाहरण लगता है, लेकिन तालिका यह Customer_City, Customer_ZIP आदि –

उत्तर

7

आप इसे एक घटक संग्रह के रूप में मानचित्रित कर सकते हैं। दुर्भाग्य से Fluent NHibernate में HasMany() घटक() के लिए कोई अधिभार नहीं है जो आपको यह निर्दिष्ट करने की अनुमति देता है कि आप घटक मैप के व्युत्पन्न वर्ग का उपयोग करना चाहते हैं। हालांकि आप ऊपर अपनी तकनीक का एक संशोधन का उपयोग कर सकते हैं।

public sealed class UserMap : ClassMap<User> { 
    public UserMap() { 
     Id(c => c.Id).GeneratedBy.HiLo("100"); 
     Map(x => x.Name); 
     HasMany(x => x.Countries).Component(CountryComponentMapping.Map); 
    } 
} 

public sealed class CountryComponentMapping { 
    public static void Map(CompositeElementBuilder<Country> part) { 
     part.Map(x => x.CountryName); 
     part.Map(x => x.CountryAlpha2) 
    } 
} 
+0

यह जवाब है साल अब अच्छी तरह से 5 से ज्यादा उम्र का रहता है । इस बीच कुछ भी बदल गया है? – MarioDS

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