2013-03-10 4 views
5

यह ConnectionStrings दृश्य स्टूडियो के साथ/ASP.NET MVC के बारे में 2012 परम & SQL सर्वर एक्सप्रेस 2012एएसपी.NET कनेक्शनस्ट्रिंग AttachDbFilename = | डेटा डायरेक्टरी |

इस ट्यूटोरियल यहाँ के साथ के बाद: http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4 मैं अपने web.config में इन दो कनेक्शन तार के साथ किसी समस्या का सामना आया था:

<connectionStrings> 
    <add name="DefaultConnection" 
     connectionString="Data Source=(LocalDb)\v11.0; 
          Initial Catalog=aspnet-MvcMovie-users; 
          Integrated Security=SSPI; 
          AttachDBFilename=|DataDirectory|\aspnet-MvcMovie-users.mdf" 
     providerName="System.Data.SqlClient" /> 

    <add name="MovieDBContext" 
     connectionString="Data Source=(LocalDB)\v11.0; 
          AttachDbFilename=|DataDirectory|\Movies.mdf; 
          Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

वेबसाइट ठीक काम करता है, लेकिन मैं बाहर fingure नहीं कर सकता क्यों पहले db App_Data फ़ोल्डर में बनाई गई है, जबकि दूसरा एक 'सी में बन जाता है: \ Program Files \ Microsoft SQL सर्वर \ MSSQL11.SQLEXPRESS \ MSSQL \ आंकड़े "?! मुझे लगता है कि दोनों App_data में बनाए जाएंगे क्योंकि दोनों इस विशेषता का उपयोग करते हैं: AttachDBFilename = | DataDirectory |

ध्यान दें: ट्यूटोरियल कहा गया है कि यह होना चाहिए App_Data & में वे एक स्क्रीनशॉट है कि यह वास्तव में पता चलता जोड़ा गया!

मैं एक जवाब की तलाश में किया गया है और (मैंने सोचा कि उपयोगकर्ता उदाहरण समाधान हो सकता है) एसक्यूएल की मिलीभगत चढ़ गया, लेकिन इस के लिए एक जवाब नहीं पहुंच सका: |

कोई भी विचार बहुत सराहना कर रहे हैं (इस उपयोगकर्ता उदाहरण http://msdn.microsoft.com/en-us/library/bb264564(v=sql.90).aspx के बारे में पढ़ने के लिए उपयोगी हो सकता है)। अग्रिम में धन्यवाद।

सम्मान

+0

क्या होता है जब आप दोनों स्ट्रिंग्स में 'InitialCatelog' जोड़ते हैं? –

+0

मैंने कोशिश नहीं की क्योंकि मेरा लक्ष्य अंततः दोनों डेटाबेस को App_data के अंतर्गत प्रदर्शित नहीं करना है; मुझे समझने की जरूरत है कि वीएस/एसक्यूएल ने उन्हें इस तरह क्यों बनाया। आपके योगदान के लिए धन्यवाद। – Alaa

उत्तर

15

अनुसंधान/परीक्षणों के बाद यह इस प्रकार निकला हो:

वी.एस. DataContext के वर्ग के नाम पर नजर डालेंगे और यदि आप वर्ग के रूप में एक ही नाम के साथ एक कनेक्शन स्ट्रिंग प्रदान नहीं की है दिखेगा नाम; उदाहरण के लिए:

public class MovieDataContext : DbContext 

और

<connectionStrings><add name="MovieDataContext" ... 

अगर यह एक मिलान कनेक्शन स्ट्रिंग यह मापदंड आप संबंधित डेटा स्ट्रिंग में निर्दिष्ट स्थान पर आधारित डीबी पैदा करेगा खोजने के लिए प्रबंधन करता है (करने के लिए डीबी जोड़ने के लिए App_Data ने डीबी के पथ को | डेटा डायरेक्टरी पर सेट किया है जैसा कि प्रश्न में उल्लिखित दोनों कनेक्शन स्ट्रिंग्स में दिखाया गया है); यदि नाम से मेल नहीं खाता या आप किसी भी कनेक्शन स्ट्रिंग नहीं प्रदान की थी, वी.एस. डिफ़ॉल्ट सेटिंग्स करना प्रारंभ कर देगा और/सेटिंग्स (आमतौर पर सी डिफ़ॉल्ट स्थान में डीबी पैदा करेगा: \ Program Files \ Microsoft SQL सर्वर \ MSSQL11.SQLEXPRESS \ MSSQL \ आंकड़े)।

नोट न तो "एकीकृत सुरक्षा" सेटिंग्स और न ही "प्रारंभिक कैटलॉग" इस के साथ कोई भूमिका निभाता है (मैं एप_Data में डीबी को एकीकृत सुरक्षा = सही & एकीकृत सुरक्षा = एसएसपीआई और प्रारंभिक/बिना प्रारंभिक के साथ डीबी बनाने में सक्षम था सूची)।

उम्मीद है कि इससे मदद मिलती है। भाग लेने वाले सभी के लिए धन्यवाद।

0

मुझे एक ही समस्या थी। मेरा मानना ​​है कि अंतर एकीकृत सुरक्षा सेटिंग में है। मेरे पास SQLExpress स्थापित है और एमएस एसक्यूएल सर्वर प्रबंधन स्टूडियो का उपयोग कर वहां मेरे मूवी डेटाबेस को मिला है। एक बेहतर विवरण के लिए इस प्रतिक्रिया

चेक बाहर। Difference between Integrated Security = True and Integrated Security = SSPI

0

क्या एएमटी दिया है बिल्कुल सही है। यह भ्रमित था क्योंकि यह .mdf और .sdf फ़ाइलों के साथ कनेक्शन स्ट्रिंग का उपयोग करना है।

मेरे पास आपके लिए एक और सूचक है, हालांकि आप डिफ़ॉल्ट सेटिंग को बदल सकते हैं जहां एप्लिकेशन संदर्भ वर्ग के वर्ग नाम से मेल खाने वाले नाम के साथ कनेक्शन स्ट्रिंग को देखता है, डीबीसीएन्टेक्स्ट के कन्स्ट्रक्टर को ओवरराइड करके और पैरामीटर नाम ऑरकनेक्शनस्ट्रिंग को निम्नानुसार प्रदान करता है

public BlogsContext() 
      : base("name=EFBlogs") 
     { 
     } 

आवेदन तो एक कनेक्शन स्ट्रिंग नामित EFBlogs के लिए खोज करता है, अगर यह कनेक्शन स्ट्रिंग नहीं मिल रहा है तो यह बजाय BlogsContext नाम EFBlogs साथ डेटाबेस बनाता है,

0

हाय जब आप डेटाबेस जोड़ते हैं तो मुझे कोई फर्क पड़ता है और यह पूछता है कि क्या आप इसे ऐप_डाटा फ़ोल्डर में रखना चाहते हैं यदि आप हाँ पर क्लिक करते हैं तो यह app_data फ़ोल्डर में जाता है और एमडीएफ का पूरा पथ नाम app_data में भी है फ़ाइल एक्सप्लोरर आप फ़ोल्डर एक्सप्लोरर का उपयोग करें।

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