पुरानी पोस्ट ... लेकिन मामले में किसी और आता है यहां उत्तर की तलाश है:
आपको जोड़ने की आवश्यकता है .ससेट() हैस्मानी टोमनी मैपिंग निश्चित करने के लिए।
अर्थात
mapping.HasManyToMany(x => x.Users)
.WithTableName("MessageReceivers")
.WithParentKeyColumn("UserId")
.WithChildKeyColumn("AdvanceMessageId")
.Inverse().AsSet();
हो जाएगा ताकि सेटअप एक अद्वितीय, समग्र प्राथमिक कुंजी दोनों स्तंभ का उपयोग करता है लिंक मेज पर बाधा। (क्लस्टर्ड इंडेक्स)
नीचे की तरफ AsSet() को IList प्रकार के संग्रह गुणों के साथ उपयोग नहीं किया जा सकता है, इसलिए बिना कास्टिंग के लूप के लिए।
मैं आईसीओलेक्शन का उपयोग कर रहा हूं और उन्हें अपने अनुप्रयोगों के लिए हैशसेट के रूप में तुरंत चालू कर रहा हूं और यह अच्छी तरह से काम करता है। धाराप्रवाह NHibernate के साथ संग्रह प्रबंधन पर
और जानकारी:
सूची: संस्थाओं के आदेश दिया संग्रह, अनुमति डुप्लिकेट। कोड में एक .net IList का प्रयोग करें। इंडेक्स कॉलम को एनएचबेर्नेट में मैप किए जाने की आवश्यकता होगी।
सेट: अद्वितीय इकाइयों का अनियंत्रित संग्रह, डुप्लिकेट की अनुमति नहीं है। कोड में Iesi.Collection.ISet का उपयोग करें। डुप्लिकेट की व्यावसायिक परिभाषा को इंगित करने के लिए GetHashCode और Equals को ओवरराइड करना महत्वपूर्ण है। ऑर्डरबाय को परिभाषित करके या एक तुलनात्मक को परिभाषित करके क्रमबद्ध किया जा सकता है जिसके परिणामस्वरूप सॉर्टेडसेट परिणाम होता है।
बैग: इकाइयों की अनियमित सूची, डुप्लिकेट की अनुमति है। कोड में एक .net IList का प्रयोग करें। सूची का इंडेक्स कॉलम मैप नहीं किया गया है और एनएचबीर्नेट द्वारा सम्मानित नहीं किया गया है।
बहुत मूल्यवान जानकारी; साझा करने के लिए धन्यवाद। – contactmatt