कीवर्ड समर्थित नहीं: "डेटा स्रोत" एंटिटी फ्रेमवर्क संदर्भ को इनिशियलाइज़ करता है


161

मैं एंटिटी फ्रेमवर्क ऑब्जेक्ट संदर्भ को इनिशियलाइज़ कर रहा हूं, और यह मुझे कीवर्ड को समर्थित त्रुटि नहीं देता है:

metadata=res://*/MainDB.csdl|res://*/MainDB.ssdl|res://*/MainDB.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Workspace\vs\Leftouch\Leftouch.Web\Data\Leftouch.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;App=EntityFramework"

मैंने कनेक्शन स्ट्रिंग को सीधे web.config से लिया था जो काम कर रहा था, और केवल फ़ाइल में पथ को संशोधित किया (जो मैं गतिशील रूप से सेट करता हूं), और डिफ़ॉल्ट मान का उपयोग करने के बजाय, इस कनेक्शन स्ट्रिंग का स्पष्ट रूप से उपयोग किया। इस त्रुटि का क्या कारण हो सकता है?


2
कृपया एक अलग दृष्टिकोण के लिए stackoverflow.com/questions/6003085/… देखें
LCJ

1
मैं नहीं जानता कि जो इस के साथ आया था metadata=res:, तो res=somethingelseसाथ "जगह वाक्य रचना में सभी - लेकिन वे वास्तव में खुशी है कि वे मेरे कमरे में ही अभी नहीं कर रहे हैं होना चाहिए: - /
Simon_Weaver

2018। नेट ईएफ कोर इसी तरह के सिंटैक्स त्रुटि - प्रदाता नाम को SqlClient कनेक्शन स्ट्रिंग द्वारा आवश्यक नहीं था। इसके अलावा ईएफ कोर के लिए स्ट्रिंग में कोई उद्धरण या टिक नहीं है।
स्क्ल सर्फर

जवाबों:


322

वास्तविक त्रुटि आपको यह त्रुटि मिल रही थी क्योंकि "आपके कनेक्शन स्ट्रिंग में मान हैं।

यदि आप उन लोगों को सिंगल कोट्स से बदलते हैं तो यह ठीक काम करेगा।

https://docs.microsoft.com/archive/blogs/rickandy/explicit-connection-string-for-ef

(इतना पोस्ट किया है कि दूसरों को मैंने किया था की तुलना में तेजी से तय कर सकते हैं।)


1
यदि आप ObjectContent वर्ग के लिए कनेक्शन स्ट्रिंग में गुजर रहे हैं, तो सुनिश्चित करें कि इसमें एकल उद्धरण हैं। यदि आपको .config फ़ाइल से कनेक्शन मिल रहा है, तो & quot; निकास का क्रम।
माइक स्टोनिस

यही मेरे लिए तय है।
गिद्दीअपहोरसी

उन लोगों के लिए जो XML काम नहीं करते हैं, से परिचित नहीं हैं, "यह उद्धरण चिह्न के लिए एक भागने का क्रम है क्योंकि यह XML में एक आरक्षित वर्ण है।
विवियन रिवर

1
थैंक्स इट्स वर्किंग
नाउ

System.Data.EntityClient.EntityConnectionStringBuilder ने मेरे लिए इसे बनाया, धन्यवाद।
14

37

मैंने इसे EntityClientवापस बदलकर तय किया SqlClient, भले ही मैं एंटिटी फ्रेमवर्क का उपयोग कर रहा था।

तो मेरा पूरा कनेक्शन स्ट्रिंग प्रारूप में था:

<add name="DefaultConnection" connectionString="Data Source=localhost;Initial Catalog=xxx;Persist Security Info=True;User ID=xxx;Password=xxx" providerName="System.Data.SqlClient" />

2
मेरे लिए काम किया! +1
यूरी केर्बिटकोव

6
उपरोक्त परिवर्तन संभावित रूप से (मेरे मामले में) निम्न त्रुटि का कारण बनेगा "संदर्भ का उपयोग कोड प्रथम मोड में कोड के साथ किया जा रहा है जो कि डेटाबेस प्रथम या मॉडल प्रथम विकास के लिए EDMX फ़ाइल से उत्पन्न हुआ था"
Psi-Ed

आप टिप्पणी कर सकते हैं फेंक नई UnintentionalCodeFirstException () OnModelCreating () में, लेकिन यह एक गंदे वर्कअराउंड की तरह दिखता है
अलेक्जेंडर उलमास्कुलोव

14

यह providerName="System.Data.EntityClient"थोड़ा गायब प्रतीत होता है । यकीन है कि आप पूरी बात मिल गई?


ठीक है, यह एक और विशेषता थी, वह भूल गया। अब इसे जोड़ा गया है metadata=res://*/MainDB.csdl|res://*/MainDB.ssdl|res://*/MainDB.msl;provider=System.Data.SqlClient;provider name=System.Data.EntityClient;provider connection string=&quot;{0};App=EntityFramework&quot;और यह अब कहता है कि कुंजी नहीं मिली: प्रदाता का नाम। मैंने भी providerName=...इसके बजाय कोशिश की provider name=है, लेकिन कोई भाग्य नहीं।
कर सकते हैं Poyrazoğlu

2
खैर, मैंने इसे EntityConnectionStringBuilderकक्षा का उपयोग करके बनाना शुरू किया , और अजीब तरह से, यह अब काम कर रहा है। लेकिन मुझे अभी भी पता नहीं है कि यह मेरी स्ट्रिंग को स्वीकार नहीं कर रहा था, यहां तक ​​कि आपके अतिरिक्त भी।
कर सकते हैं Poyrazoğlu

3

मानो या न मानो, LinqPad.exe.config का नाम बदलकर LinqPad.config ने इस समस्या को हल कर दिया है।


12
यह Microsoft है, कुछ भी हो सकता है!
अल्ताफ पटेल

इसका कोई मतलब नहीं है। Linqpad का सवाल के साथ क्या करना है और एक निष्पादन योग्य का नाम बदलना कभी मददगार कैसे हो सकता है?
गर्ट अर्नोल्ड

खैर यह विशेष त्रुटि Linqpad के साथ मेरे मामले में हुई और ऐसा करने से यह हल हो गया। और मैंने निष्पादन योग्य का नाम नहीं बदला। मैंने नाम बदलकर .exe.config to .config कर दिया है।
समीर अलीभाई

वैसे भी, यह एक बहुत विशिष्ट परिदृश्य है। यह केवल शोर जोड़ता है क्योंकि यह कुछ भी स्पष्ट नहीं करता है ,
गर्ट अर्नोल्ड


1

सुनिश्चित करें कि आपके पास है Data Sourceऔर DataSourceआपके कनेक्शन स्ट्रिंग में नहीं है। अंतरिक्ष महत्वपूर्ण है। मुझ पर विश्वास करो। मैं बेवकूफ़ हूँ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.