13

के साथ एंटीटीट फ्रेमवर्क में एसक्यूएल कनेक्शन के साथ मैं अपने एएसपी.नेट एमवीसी 3 एप्लिकेशन के साथ एंटिटी फ्रेमवर्क 4 का उपयोग कर रहा हूं। मेरी समस्या यह है कि मैं अपने डेटाबेस के साथ कार्रवाई करने के लिए एंटिटी फ्रेमवर्क का उपयोग कर रहा हूं, यह ठीक काम कर रहा है। किसी अन्य उद्देश्य के लिए मैं एसक्यूएल कनेक्शन का उपयोग डेटाबेस से अपने डेटा को स्टोर और पुनर्प्राप्त करने के लिए भी कर रहा हूं। मुझेकीवर्ड समर्थित नहीं है: 'मेटाडाटा'।? एमवीसी 3

[Keyword not supported: 'metadata'] 

मेरे डेटाबेस से कनेक्ट करते समय त्रुटि हो रही है।

यह मेरा वेब config

<add name="VibrantEntities" connectionString="metadata=res://*/Vibrant.csdl|res://*/Vibrant.ssdl|res://*/Vibrant.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=KAPS-PC\KAPSSERVER;initial catalog=vibrant;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

मैं कक्षा लाइब्रेरी का उपयोग कर रहा है, तो यह मेरी अनुप्रयोग कॉन्फ़िग है।

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 

    <add name="VibrantEntities" connectionString="metadata=res://*/Vibrant.csdl|res://*/Vibrant.ssdl|res://*/Vibrant.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=KAPS-PC\KAPSSERVER;initial catalog=vibrant;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

उत्तर

20

ADO.NET के लिए कनेक्शन स्ट्रिंग (इस मामले SqlConnection में) है कि प्रारूप नहीं लेता है। आप इकाई फ्रेमवर्क के लिए एक विशिष्ट का उपयोग कर रहे हैं। ADO.NET एक होना चाहिए कुछ की तरह:

"data source=KAPS-PC\KAPSSERVER;initial catalog=vibrant;integrated security=True" 

इसलिए, यह योग करने के लिए, आप दो अलग-अलग कनेक्शन तार, एफई के लिए और एक ADO.NET

के लिए
-1

यहाँ एक बेहतर समाधान Theres की जरूरत है, एंटिटी फ्रेमवर्क पावर टूल्स का उपयोग करें, अपने प्रोजेक्ट में अपने डेटाबेस को रिवर्स इंजीनियर करें, फिर आप दोनों परिदृश्यों के लिए एक एकल ईएफ कनेक्शन स्ट्रिंग (जो सामान्य कनेक्शन स्ट्रिंग है) का उपयोग कर सकते हैं।

using System.Data.EntityClient; 
using System.Data.SqlClient; 
... 
private string GetADOConnectionString() 
{ 
    SalesSyncEntities ctx = new SalesSyncEntities(); //create your entity object here 
    EntityConnection ec = (EntityConnection)ctx.Connection; 
    SqlConnection sc = (SqlConnection)ec.StoreConnection; //get the SQLConnection that your entity object would use 
    string adoConnStr = sc.ConnectionString; 
    return adoConnStr; 
} 

(मैं इस कहीं जगह:

+0

मैं, तुम नहीं मिला आप और अधिक व्याख्या कर सकते हैं –

5

एक अन्य विकल्प (एक ही बात के लिए 2 अलग कनेक्शन तार के अलावा अन्य) एक विधि है कि अपनी इकाई की रूपरेखा ऑब्जेक्ट से एक ADO.NET कनेक्शन स्ट्रिंग रिटर्न का निर्माण करना है मेरी कक्षा लाइब्रेरी जहाँ मेरे edmx फ़ाइलें हैं)

(मैं http://justgeeks.blogspot.com/2009/11/getting-sqlconnection-from.html से)

या और भी बेहतर ... यह मिल गया है, तो अपने SqlConnection सामान मैनुअल एसक्यूएल प्रश्न है, तो SqlConnection छोड़ पूरी तरह ExecuteStoredCommand के माध्यम से:

new AdventureEntities().ExecuteStoreCommand(
     @" UPDATE Users 
       SET lname = @lname 
       WHERE Id = @id", 
     new SqlParameter("lname", lname), new SqlParameter("id", id)); 

(मैं Entity Framework getting an sql connection से मिला)

10

आप कनेक्शन स्ट्रिंग इकाई की रूपरेखा के लिए विशिष्ट है और मेटाडाटा शामिल हैं। आपको इससे अपने प्रदाता कनेक्शन स्ट्रिंग को प्राप्त करने की आवश्यकता है। आप EntityConnectionStringBuilder का उपयोग कर ऐसा कर सकते हैं:

var efConnectionString = "Your Entity Framework connection string"; 
var builder = new EntityConnectionStringBuilder(efConnectionString); 
var regularConnectionString = builder.ProviderConnectionString; 
+1

, लघु सटीक और पालन करने के लिए आसान! धन्यवाद –

+0

हाय, मुझे यह कोड कहां लिखना चाहिए? क्या यह web.config में है? – kurniawan26

+0

@ कुर्नियावान 26 आप अपने 'web.config' में सी # कोड नहीं लिख सकते हैं। जहां भी आप डेटाबेस से कनेक्ट होते हैं, आपको इसका उपयोग करने की आवश्यकता होगी। हालांकि आपकी कनेक्शन स्ट्रिंग को 'web.config' में रहना चाहिए। आप अपना कोड एक अलग प्रश्न में पोस्ट कर सकते हैं और मुझे मदद करने में खुशी होगी। –

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