2017-05-12 11 views
5

मुझे एक ऐसा एप्लिकेशन मिला जो कई अलग-अलग क्लाइंट डेटाबेस से बात करता है।इकाई फ्रेमवर्क और गतिशील स्कीमा

क्लाइंट डेटाबेस में इनमें से अधिकांश तालिकाओं में समान स्कीमा है - लेकिन कुछ हद तक सारणीयां हैं जिनमें अतिरिक्त कस्टम कॉलम हैं जिनमें टैक्स जानकारी है (या - बुरा विचार - मुझे पता है ... मैंने इसे सेट नहीं किया है)।

इन अतिरिक्त कॉलमों का नाम कुछ भी हो सकता है। वे रनटाइम पर जाने जाते हैं क्योंकि उन्हें किसी अन्य तालिका में देखा जा सकता है।

मैं ईएफ सेट कर सकता हूं कि यह इन तालिकाओं को पढ़/लिख देगा (गतिशील कॉलम छोड़ देगा) लेकिन मुझे वास्तव में इस जानकारी की आवश्यकता है - क्योंकि यह कर डेटा है।

मुझे लगता है कि यह मेरे सर्वोत्तम मार्ग के साथ अतिरिक्त गुणों के साथ एक निश्चित मॉडल है जो इन गतिशील कॉलम से भरा जा सकता है।

प्रत्येक कॉल पर कस्टम एसक्यूएल स्टेटमेंट का उपयोग किए बिना इन कॉलम को गतिशील रूप से पढ़ने और लिखने के लिए मैं इकाई फ्रेमवर्क कैसे प्राप्त कर सकता हूं?

मैं अतिरिक्त अतिरिक्त पढ़ और लिख सकता हूं और इन अतिरिक्त कॉलम को अलग-अलग (कस्टम एसक्यूएल का उपयोग करके) लिखने के लिए लिख सकता हूं ... लेकिन ईएफ को ओवरराइड करने का कोई तरीका होना चाहिए ताकि यह इन अतिरिक्त कॉलमों के बारे में जान सके और उन्हें सही तरीके से संभाल सकें।

किसी भी मदद की सराहना की जाएगी।

उत्तर

1

पहले चरण में, आप यह जानने के लिए कि क्या आप जिस संदर्भ को अपना संदर्भ रखना चाहते हैं, उसे आप _INFORMATION_SCHEMA_, या अन्य मेटाडेटा टेबल से सीधे पूछताछ कर सकते हैं। उस जानकारी के आधार पर, आप एक अलग DbContext (जेनेरिक शायद काम करेंगे) का उपयोग कर सकते हैं लेकिन इसे MappingConfiguration का उपयोग करके बना सकते हैं जिसमें आप कॉलम को अनदेखा करते हैं, यदि वे वहां नहीं हैं, या उन्हें अपनी संदर्भ इच्छाओं को पीओसीओ कक्षा में मैप करें।

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