nhibernate - How to map IDictionary that has a IList value? -
NHibernate का उपयोग कर, मैं कैसे निम्न परिदृश्य को मैप कर सकता हूं:
सार्वजनिक वर्ग उपयोगकर्ता {सार्वजनिक वर्चुअल आईडीकेर & lt; प्रोजेक्ट, आईएलआईआईएसटीटी & lt; भूमिका & gt; & gt; परियोजना समझौते {प्राप्त करें; सेट; }}
डेटाबेस में मेरे पास उपयोगकर्ता
, परियोजना
और भूमिका
और एक चौथा किसी भी मदद की सराहना की जाएगी।
आप कर सकते हैं ' टी - <से
मैं कहना चाहूंगा कि मैंने अभी तक & lt; map /> के सभी विकल्पों को कवर नहीं किया है, यहां तक कि अधिक विकल्प (हालांकि, IDictionary & lt; K, IList & lt; V >> ऐसा कुछ ऐसा नहीं है जो मानचित्रित करने के लिए संभवतः समस्याग्रस्त एसक्यूएल स्टेटमेंट के लिए आवश्यक है)।
आपको कुछ मध्यस्थ इकाई / घटक की आवश्यकता होगी मुझे उपयोगकर्ता, प्रोजेक्ट और भूमिका के बीच नारी संघ को तोड़ने के लिए प्रोजेक्ट एसेटिनेमेंट इकाई होगी - समय के रूप में संभवतः अतिरिक्त विशेषताओं को बढ़ाना होगा (कहें कि आप समय के साथ कार्य में परिवर्तनों को ट्रैक करना चाहते हैं, इसलिए यह हो जाता है StartDate
और समाप्ति तिथि
गुण)।
ऐसा कुछ:
सार्वजनिक वर्ग उपयोगकर्ता {// ... अन्य विशेषताओं आदि सार्वजनिक आभासी ISet & lt; ProjectAssignment & gt; असाइनमेंट {get; set;}} सार्वजनिक वर्ग परियोजना {// ... अन्य विशेषताओं आदि। सार्वजनिक आभासी ISet & lt; ProjectAssignment & gt; सार्वजनिक वर्क रोल {// ... अन्य विशेषताओं आदि} सार्वजनिक वर्ग प्रोजेक्टएस्साइमेंट {सार्वजनिक आभासी Int64 {get; set;} सार्वजनिक वर्चुअल उपयोगकर्ता उपयोगकर्ता {get; set;} सार्वजनिक वर्चुअल प्रोजेक्ट प्रोजेक्ट { प्राप्त करें; सेट;} सार्वजनिक आभासी भूमिका भूमिका {get; set;} // ... अन्य विशेषताओं आदि}
मैं सिर्फ प्रोजेक्ट एसेटिनेमेंट को अपने स्वयं के एक सतत वर्ग के रूप में मानचित्रित करता हूं सही है, और उपयोगकर्ता। असाधारण संग्रह जो भी स्वाद के सामान्य एक-से-कई के रूप में। अंत में, मैं विवरण को एक शब्दकोश में (या संभवतया एक आईएलकुकप को निकालने के लिए जोड़ूंगा यदि आप फ्रेमवर्क v3.5 का उपयोग कर रहे हैं): कुछ ऐसा:
ILookup & lt; परियोजना, भूमिका & gt; GetRolesByProject () {वापसी Assignments.ToLookup (x = & gt; x.Project, x = & gt; x.Role); }
Comments
Post a Comment