2013-06-13 12 views
14

मैं एमवीसी का उपयोग करने के लिए नया हूं, और जब मैं पहली बार शुरू हुआ था तो मैं अपने डीबी में डेटा प्रारंभ करने के लिए प्रारंभकर्ता का उपयोग करने की कोशिश कर रहा हूं। यहाँ है कि मैं क्या Global.asax.cs में मिल गया है है:डेटाबेस ड्रॉप नहीं कर सकता क्योंकि यह वर्तमान में उपयोग में है एमवीसी

<connectionStrings> 
    <add name="MyAppContext" 
    connectionString="data source= MyServer; Integrated Security=True; database=MyDatabase" 
    providerName="System.Data.SqlClient"/> 

यह एमएस एसक्यूएल 2008 R2 उपयोग कर रहा है:

System.Data.Entity.Database.SetInitializer(new MyAppInitializer()); 
MyAppContext db = new MyAppContext(); 
db.Database.Initialize(true); 

web.config में, यहाँ मेरी कनेक्शन स्ट्रिंग है । मेरे प्रारंभकर्ता इस तरह दिखता है:

public class MyAppInitializer : DropCreateDatabaseAlways<MyAppContext> 
{ 
    protected override void Seed(MyAppContext context) 
    { 
     var organizations = new List<Organizations> 
     { 
      new Organizations { OrgName = "AT", OrgPhone = 5093333433, OrgOfficeLocation = "ITB", OrgPointOfContact = "Tony", OrgIsActive = 1 }, 
      new Organizations { OrgName = "Libraries", OrgPhone = 5093331122, OrgOfficeLocation = "Holland-Terrell", OrgPointOfContact = "Herald", OrgIsActive = 1 } 
     }; 
     organizations.ForEach(s => context.Organizations.Add(s)); 
     context.SaveChanges(); 

मैं हालांकि कोई भी इसे प्रयोग किया जाना चाहिए अभी, यकीन है कि मैं सर्वर और SQL सर्वर प्रबंधन स्टूडियो में डेटाबेस के लिए अपने कनेक्शन बंद कर दिया है, लेकिन कई लोग इस डीबी के लिए उपयोग किया बनाया है। मैं इसे कैसे प्राप्त कर सकता हूं ताकि मैं इस डेटा को अपने डीबी में प्रारंभ कर सकूं? धन्यवाद!

संपादित करें: मुझे सर्वर पर डीबी बनाया गया है, लेकिन यह पूरी तरह से खाली है (कोई टेबल, प्रक्रियाएं, आदि)। क्या इससे कोई समस्या होगी?

उत्तर

19

SSMS में कुछ इस तरह चलाने ...

USE master -- be sure that you're not on MYDB 
ALTER DATABASE MYDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
DROP DATABASE MYDB; 
+0

मुझे एक वाक्यविन्यास त्रुटि मिलती है: 'IMMEDIATE' के पास गलत वाक्यविन्यास मैंने इसे बाहर निकाला और इसे चलाया, लेकिन यह बंद होने से पहले लगभग 5 मिनट तक चला, इस मामले में मुझे यह त्रुटि मिली: रोलबैक ट्रांसलेशन अनुरोध का कोई संगत नहीं है BEGIN लेनदेन – SantasNotReal

+0

रोलबैक के साथ तत्काल – Sam

+0

_mdf file_ का उपयोग कर *** स्थानीय डीबी *** के लिए काम करता है? 'डेटा स्रोत = (लोकलडीबी) \ v11.0; AttachDbFilename = | DataDirectory | \ wingtiptoys.mdf; एकीकृत सुरक्षा = सही' – Kiquenet

41

मैं आज वही समस्या का सामना करना पड़ा MVC codefirst का उपयोग करते समय। विभिन्न सामानों को आजमाने के 20 मिनट बाद मैंने देखा कि विजुअल स्टूडियो में "सर्वर एक्सप्लोरर" टैब में मेरे डेटाबेस के लिए एक कनेक्शन खुला था। दृश्य स्टूडियो के सर्वर एक्सप्लोरर टैब में कनेक्शन को "बंद" करने के बाद, कोड चलाने और स्वचालित रूप से डेटाबेस को फिर से बनाने में सक्षम था।

+1

मजेदार, विजुअल स्टूडियो (वीएस 2015 का उपयोग करके) खुला कनेक्शन और इस मामले को स्वयं ही संभाल नहीं सकता! –

+1

@TwoPea मुझे स्थानीय डीबी के साथ एक ही समस्या थी जिसका प्रयोग नमूना एमवीसी प्रोजेक्ट में किया जा रहा है। आपके समाधान ने इसे हल किया। – nam

+0

यह वास्तविक समाधान है और इसे उत्तर के रूप में स्वीकार किया जाना चाहिए, – Thinking

2

एसएसएमएस "हटाएं" विंडो में सुनिश्चित करें कि "मौजूदा कनेक्शन बंद करें" चेक किया गया है।

+0

डीबी ड्रॉप करने के इन सभी तरीकों को आजमाने के बाद, मैंने एसएसएमएस बंद कर दिया, वीएस में डेटा कनेक्शन बंद कर दिया, और फिर वीएस बंद कर दिया। ओपन वीएस, यह सुनिश्चित करने के लिए जांच की गई कि कनेक्शन अभी भी बंद हैं, एप्लिकेशन चलाया। वह काम किया। – JaneH

0

दृश्य स्टूडियो सर्वर एक्सप्लोरर और SQL प्रबंधन प्रबंधन स्टूडियो में डेटाबेस के सभी मौजूदा कनेक्शन को बंद करने के लिए समस्या हल हो गई।

+0

क्या मैं इसे कर सकता हूं *** प्रोग्रामेटिक रूप से *** _ विजुअल स्टूडियो सर्वर explorer_? – Kiquenet

6

VS2015 close DB connection Vardhini ... सर्वर एक्सप्लोरर में करीब डीबी कनेक्शन ने वर्णन किया है।

+0

'रोलबैक तत्काल के साथ वैकल्पिक डेटा MYDB सेट SINGLE_USER *** *** स्थानीय डीबी *** पर लागू होता है? – Kiquenet

0

मेरे टिप्पणियों हैं:

  1. आवेदन
  2. सर्वर एक्सप्लोरर के साथ DB से कनेक्ट नहीं किया जा सकता है में लॉग इन नहीं किया जा सकता है
  3. SSMS के साथ जुड़ा हुआ नहीं किया जा सकता

फिर आवेदन डीबी के पुनर्निर्माण यहां तक ​​कि Database.SetInitializer<DbContext>(new DbInitializer());public DbContext(); में है - जैसा कि अन्य answears इसे Application_Start();

01 में डालने के लिए खड़े हैं
+0

डीबी ड्रॉप करने के इन सभी तरीकों को आजमाने के बाद, मैंने एसएसएमएस बंद कर दिया, वीएस में डेटा कनेक्शन बंद कर दिया, और फिर वीएस बंद कर दिया। ओपन वीएस, यह सुनिश्चित करने के लिए जांच की गई कि कनेक्शन अभी भी बंद हैं, एप्लिकेशन चलाया। वह काम किया। – JaneH

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

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