Fluent-NHibernate : how to map one-to-many relationship into 3 tables (many-to-many, kinda) -


मुझे इस तरह 2 संस्थाएं हैं:

  class A {int id {get; सेट; } स्ट्रिंग का नाम {get; सेट; }} वर्ग बी {int आईडी {get; सेट; } एक रिफोटा {प्राप्त करें; सेट; } स्ट्रिंग का नाम {get; सेट; }}  

मैं इस 2 वर्गों को कैसे मैप कर सकता हूं ताकि मेरे पास इस तरह 3 टेबल हों:

  • 2 कॉलम के साथ तालिका ए: id और नाम

  • 2 स्तंभों के साथ तालिका बी: आईडी और नाम

  • 2 स्तंभों के साथ तालिका एबी: एआईडी और बीआईडी ​​

अगर मैं यह सही समझता हूँ तो आप एक रेफरी टेबल बना रहे हैं क्योंकि आप चाहते हैं नल होने के संदर्भ यदि ऐसा मामला है, तो आपको एक रेफरी टेबल की ज़रूरत नहीं है बस तालिका ख के रूप में एफबी में नल योग्य सेट करें उसके बाद आप इसे एक साधारण संदर्भ मानचित्रित कर सकते हैं। 2 टेबल के साथ तालिका ए: आईडी और नाम

  • 2 स्तंभों के साथ तालिका बी: आईडी, नाम और सहायता (नल योग्य)

    • Li>

    और आप इसे इस तरह से मैप कर सकते हैं:

      सार्वजनिक वर्ग एएमएपी: क्लासमार्क & lt; ए & gt; {सार्वजनिक एएमपी () {आईडी (x = & gt; x.Id); मानचित्र (x = & gt; x.Name); }} सार्वजनिक वर्ग BMAP: क्लासमार्क & lt; B & gt; {सार्वजनिक BMAP () {आईडी (x = & gt; x.Id); मानचित्र (x = & gt; x.Name); संदर्भ (x = & gt; x.RefToA); }}  

    अपडेट

    इस पर नज़र रखने का कोई तरीका नहीं है कि आप कैसे निहलनात्मक (और उस बात के लिए कोई अन्य orm) में नहीं चाहते हैं। इसके लिए कारण काफी सरल है: यह कुछ नियमों का उल्लंघन करता है और इस तरह से ऐसा करने का कोई कारण नहीं है। ऐसा करने के लिए सही तरीके से तालिका बी में एक रिक्त fk संदर्भ होना चाहिए इसी तरह आप एक एसक्यूएल डेटाबेस में एक संदर्भ का प्रतिनिधित्व करते हैं जब आप एक-से-कई मानते हैं और यह निश्चित रूप से बाद में आपको परेशानी देगी तो कई-से-कई लोगों का उपयोग करने के लिए यह केवल खराब डिजाइन है।


  • Comments

    Popular posts from this blog

    objective c - iPhone and it's wireless area -

    unix - Listing all shared memory segments used by a process on AIX5.3+ -

    tsql - Correct sql/hql query (aggregate in where clause) -