2010-11-01 14 views
6

मैंने एमवीसी का उपयोग कर मेरे पहले पूर्ण पैमाने पर प्रोजेक्ट पर काम कर रहे एक परियोजना में उपयोग के लिए गिल फिंक द्वारा टी 4 रिपोजिटरी/यूनिट ऑफ वर्क टेम्पलेट्स को लागू किया। हालांकि, मुझे एक त्रुटि मिल रही है जिसे मैं पहले नहीं मिला था, और मैं इसे ट्रैक नहीं कर सकता। मुझे नहीं पता कि यह टेम्पलेट्स के साथ कुछ है, या सिर्फ एक सेटिंग जहां मैंने गलत सेट किया है, लेकिन मैं अभी हार गया हूं। मैं उम्मीद कर रहा था कि कोई स्थिति पर कुछ प्रकाश डालने में सक्षम होगा।एमवीसी 3 ईएफ 4 पीओसीओ रिपोजिटरी/यूनिटऑफवर्क कनेक्शन त्रुटि

यहाँ मेरी ढांचे सेटअप है:

  • MVC 3 बीटा
  • एसक्यूएल सर्वर 2008 R2
  • Ninject v2.1.0.76
  • EF4 POCO
  • समाधान में 3 परियोजनाओं: डाटा, संस्थाएं और एमवीसी ऐप।

मैं एक डीबी पहला डिजाइन कर रहा हूं, और माइक्रोसॉफ्ट के एडीओ.NET पॉको एंटीटी जेनरेटर के माध्यम से पीओसीओ कक्षाएं बनाने के लिए ईएफ का उपयोग कर रहा हूं। मैं फिर कार्य पैटर्न के भंडार और इकाई बनाने के लिए टी 4 उपकरण का उपयोग करता हूं। उस सेटअप के साथ, और सभी वर्गों और रिपॉजिटरीज उत्पन्न हुए, मैं इसे डीआईसी के लिए निनजेक्ट का उपयोग करके एमवीसी ऐप में कार्यान्वित करता हूं। मैं इस बिंदु पर एक नियंत्रक फैक्टरी का उपयोग कर एमवीसी 2 विधि का उपयोग कर रहा हूं, बाद में इसे IDependencyResolver विधि में बदलने की योजना बना रहा हूं।

जब मैं हार्ड-कोडित मॉक रिपोजिटरी का उपयोग करता हूं, तो एप्लिकेशन इसे काम करता है, हालांकि जब मैं इसे आईरिपोजिटरी बाइंडिंग का उपयोग करने के लिए बदलता हूं, तो मुझे निम्न त्रुटि मिलती है: "आपूर्ति कनेक्शन वैध नहीं है क्योंकि इसमें अपर्याप्त है मैपिंग या मेटाडेटा जानकारी पैरामीटर नाम: कनेक्शन " यह मुझे इंगित करता है कि डीबी से कनेक्शन के लिए ईएफ के लिए कनेक्शन स्ट्रिंग गलत है, हालांकि यह ADO.NET इकाई डेटा मॉडल टेम्पलेट द्वारा उत्पन्न डिफ़ॉल्ट स्ट्रिंग है। शायद यह .edmx सेटिंग्स के साथ कुछ भी है।

यहाँ मेरी कनेक्शन स्ट्रिंग (काम बेवकूफ डिनर डेटाबेस लेआउट का उपयोग कर) कोई विचार/संकेत के साथ

<add name="NerdDinnerEntities" 
connectionString="metadata= 
res://*/Model1.csdl| 
res://*/Model1.ssdl| 
res://*/Model1.msl; 
provider=System.Data.SqlClient; 
provider connection string=&quot;Data Source=Wayne;Initial Catalog=NerdDinner;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True&quot;" 
providerName="System.Data.EntityClient" /> 

किसी को भी, आदि है, मैं बहुत सराहना की जाएगी।

संपादित करें: Repository and Unit of Work T4 Template for Entity Framework

EDIT2:: त्रुटि घर मैं काम की इकाई के साथ डि उपयोग कर रहा हूँ के साथ कुछ है यहाँ मैं उपयोग कर रहा हूँ टी -4 टेम्पलेट के लिए लिंक भी है। जब मैं DI को हटाता हूं, और मैन्युअल रूप से नियंत्रकों में निर्भरता रखता है, तो यह काम करता है। जब मैं DI को लागू करने का प्रयास करता हूं, तो यह टूट जाता है।

उत्तर

3
res://*/Model1.csdl| 

कि * एक वाइल्डकार्ड कि एफई के लिए कहते हैं कि "संसाधन के लिए सभी विधानसभाओं स्कैन"। संभावना है कि यह स्कैन किसी भी कारण से असेंबली नहीं ढूंढ रहा है। अपने विधानसभा नाम के

* बदलें:

res://My.Assembly.Name/Model1.csdl| 
+0

मैंने वास्तव में कोशिश की है। मैंने यह सुनिश्चित करने के लिए .NET परावर्तक का उपयोग किया कि मुझे इसके लिए सही असेंबली नाम मिला। मैंने "res: // * /;" का "एक-शॉट" समाधान भी आजमाया, लेकिन यह भी काम नहीं करता था। –

+1

बिंगो! यह मेरी समस्या तय है। धन्यवाद @ jfar –

1

आप अपने Ninject निर्भरता स्थापित करने के लिए NuGet का उपयोग कर रहे हैं, तो यह NinjectWebCommon.cs में अपने डि बाइंडिंग स्थापित करने के लिए पसंद करती है। यदि आपके डीआई बाइंडिंग को लोड करने के लिए एक इकाई फ्रेमवर्क संदर्भ को तत्काल करने की आवश्यकता होती है, तो यह एप्लिकेशन लाइफसाइक्ल में बहुत जल्दी होता है और एप्लिकेशन कनेक्शन स्ट्रिंग को सही तरीके से समझ नहीं सकता है।

यदि आपको लगता है कि यह हो रहा है कि यह हो रहा है, see my answer here for more information

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