c# - EF4 Poco Issue Mapping Types Same Name Same Assembly Different Namespaces -


मुझे EF4 और प्रॉक्सी पॉकोस के साथ एक समस्या का अनुभव है। < / P>

मेरे पास उसी विधानसभा में एक ही नाम के साथ 2 वर्ग हैं लेकिन अलग नाम स्थान :

  उद्धरणमॉडल्स.कैश भुगतान ऑर्डरमोडल्स.कैश पेमेंट  < / Pre> 

यह ठीक संकलित करता है लेकिन रनटाम ईएफ पर निम्न अपवाद फेंकता है:

निर्दिष्ट स्कीमा मान्य नहीं है। त्रुटियां: \ r \ n सीएलआर प्रकार का ईडीएम प्रकार के मानचित्रण अस्पष्ट है क्योंकि कई सीएलआर प्रकार ईडीएम प्रकार 'कैश भुगतान' से मेल खाते हैं। पहले CLR प्रकार 'QuoteModels.CashPayment' मिल गया, हाल ही में सीएलआर टाइप 'ऑर्डरमोडल्स। कैशपैमेंट'

क्या काम करने के लिए अलग-अलग नामस्थानों के साथ एक ही विधानसभा में समान नाम वाले कक्षाएं हैं एफएफ 4 के साथ?

क्या मुझे उन्हें अलग-अलग नाम देना होगा या उन्हें एक और विधानसभा में स्थानांतरित करना होगा?

मैंने एक काम पाया है-आस-पास यह एक बहुत ही स्पष्ट काम है- जो कि गैर-आदर्श है, लेकिन मुझे लगता है कि मैं इसे पर्याप्त रूप से हमारे लिए पर्याप्त कहने जा रहा हूं जब तक कि इसे ठीक करने के लिए ईएफ 5 बाहर नहीं आ जाता।

संक्षिप्त उत्तर: बस एक या दोनों अस्पष्ट संस्थाओं का नाम बदलें जैसे: 2x व्यक्ति का नाम बदलकर: Personal_Person और Personal_Family

लंबी उत्तर: हमारे परिदृश्य में, हम डीबी-पहले दृष्टिकोण का उपयोग कर रहे हैं (हम न्यूनतम डीबी परिवर्तनों के साथ एक विरासत ऐप को दोबारा लिख ​​रहे हैं)। हमारे डीबी में सैकड़ों तालिकाओं हैं, इसलिए एक एकल EDMX / प्रसंग का उपयोग करने के बजाय, मैं कई EDMX / Contexts (एडीएमएक्स ने हर बार हमारी तालिका के आधे से अधिक जोड़ने की कोशिश की है) का उपयोग कर रहा हूं। हालांकि, कुछ तालिकाओं को एक से अधिक EDMX / संदर्भ में मौजूद होना आवश्यक है।

चर्चा के लिए, चलते हैं कि हमारे पास निम्न तालिकाओं के साथ एक सरल डेटाबेस है:

  • व्यक्ति
  • परिवार
  • संबंध
  • पता
  • व्यवसाय
  • कर्मचारी

इसके अलावा, इस चर्चा के लिए, मान लीजिए कि कई संदर्भों में मौजूद कोई तालिका इस समस्या का कारण बनती है (जैसा कि मैंने देवर्ट के उत्तर में टिप्पणी में कहा था, यह वास्तव में सच नहीं है और मुझे समझ में नहीं आ रहा है कि यह कभी-कभी क्यों काम करता है)।

अब हम कहते हैं हम दो संदर्भ बनाना चाहते हैं: PersonalContext :

  • व्यक्ति
  • परिवार <
  • संबंध
  • पता

WorkContext : < / P>

  • व्यक्ति
  • व्यवसाय
  • पता
  • कर्मचारी

इस में परिदृश्य, दोनों व्यक्ति और पता हमारी समस्या का कारण होगा तो हमारे ईडीएमएक्स मैपिंग में हम क्या करेंगे, बस हमारी संस्थाओं को Person_Personal / Person_Work और Address_Personal / Address_Work पर नाम बदलें। । जैसा कि कहा गया है, यह एक बहुत ही स्पष्ट कार्य है, जो कि गैर-आदर्श है, लेकिन चूंकि ईएफ खाते में नामांकन नहीं करता है और कड़ाई से नाम से जाना जाता है (वास्तविक पहचान नहीं, केवल नाम), एक निश्चित तरीका है कि आप अपने नामों को अपने नाम पर रखना चाहते हैं।

अब मैं अभी भी बहस कर रहा हूं अगर मैं ऐसा करने जा रहा हूं या हर इकाई के नाम का नाम बदल सकता हूं ( Personal_Person , Personal_Family , Personal_relationship , Personal_Address और Work_Person , Work_Business , वर्क_एडर , और वर्क_इमोर्ची ) दोनों स्थिरता और इंटेलीज़ेंस-मित्रत्व (सभी पात्रों को उचित वर्णमाला क्रम में रखते हुए) के लिए, वास्तव में नाम स्थान इसके बाद के बजाय नाम से पहले है, लेकिन यह एक फैसले कॉल और नहीं समस्या का समाधान प्रदान करने के लिए वास्तव में महत्वपूर्ण है।

मुझे उम्मीद है कि यह मददगार होगा!


Comments

Popular posts from this blog

c# - sqlDecimal to decimal clr stored procedure Unable to cast object of type 'System.Data.SqlTypes.SqlDecimal' to type 'System.IConvertible' -

Calling GetGUIThreadInfo from Outlook VBA -

Obfuscating Python code? -