Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

कोड-प्रथम को हमेशा एक अस्तित्वहीन डेटाबेस प्रारंभ करने के लिए मजबूर करना?

प्रारंभकर्ता तब निष्पादित किया जाता है जब आपको डेटाबेस तक पहुंचने की आवश्यकता होती है, इसलिए यदि आप ऐप पर डेटाबेस बनाना चाहते हैं तो निम्न में से कुछ भी उपयोग करें:

    context.Database.Initialize(true); //If set to true the initializer is run even if it has already been run.       
    context.Database.Create()

http://msdn.microsoft.com/en-us/library/system.data.entity.database.initialize(v=vs.103).aspx

CreateDatabaseIfNotExists IDatabaseInitializer का एक कार्यान्वयन जो डेटाबेस को फिर से बनाएगा और वैकल्पिक रूप से डेटा के साथ डेटाबेस को फिर से सीड करेगा यदि डेटाबेस मौजूद नहीं है। डेटाबेस को सीड करने के लिए, एक डिराइव्ड क्लास बनाएं और सीड मेथड को ओवरराइड करें।

Database.SetInitializer<MyContext>(new CreateDatabaseIfNotExists<MyContext>());

http://msdn.microsoft.com/ en-us/लाइब्रेरी/gg679221(v=vs.103).aspx

DropCreateDatabaseIfModelChanges IDatabaseInitializer का एक कार्यान्वयन, जो डेटाबेस को हटाएगा, फिर से बनाएगा, और वैकल्पिक रूप से डेटा के साथ डेटाबेस को फिर से सीड करेगा, यदि डेटाबेस बनने के बाद से मॉडल बदल गया है। यह स्टोर मॉडल के हैश को डेटाबेस में लिखते समय प्राप्त किया जाता है जब इसे बनाया जाता है और फिर उस हैश की तुलना वर्तमान मॉडल से उत्पन्न एक के साथ की जाती है। डेटाबेस को सीड करने के लिए, एक डिराइव्ड क्लास बनाएं और सीड मेथड को ओवरराइड करें।

Database.SetInitializer (नया DropCreateDatabaseIfModelChanges ());

http://msdn.microsoft.com/ en-us/लाइब्रेरी/gg679604(v=vs.103).aspx

DropCreateDatabaseAlways

IDatabaseInitializer का एक कार्यान्वयन जो हमेशा डेटा के साथ डेटाबेस को फिर से बनाएगा और वैकल्पिक रूप से फिर से बीज देगा जब पहली बार एप्लिकेशन डोमेन में एक संदर्भ का उपयोग किया जाता है। डेटाबेस को सीड करने के लिए, एक डिराइव्ड क्लास बनाएं और सीड मेथड को ओवरराइड करें।

Database.SetInitializer<MyContext>(new DropCreateDatabaseAlways<MyContext>());

http://msdn.microsoft.com/ en-us/लाइब्रेरी/gg679506(v=vs.103).aspx

मेरा सुझाव है कि आप माइग्रेशन . देखें यदि आप ट्रैक करना चाहते हैं, तो अपने DB में किए गए परिवर्तनों को पिछली स्थिति में वापस लाएं http ://msdn.microsoft.com/hr-hr/data/jj591621

अपडेट करें

context.Database.Initialize(true);

MVC एप्लिकेशन के लिए Application_Start() . में एक सेक्शन जोड़ें Global.asax . में विधि

protected void Application_Start() {

     Database.SetInitializer<MyContext>(new DropCreateDatabaseAlways<MyContext>()); 

     // Forces initialization of database on model changes.
     using (var context= new MyContext()) {
          context.Database.Initialize(force: true);
     }    
}

इसके अलावा आप एक कस्टम इनिशियलाइज़र का उपयोग कर सकते हैं:

public class MyDbInit : DropCreateDatabaseAlways<MyContext>
{

}

और फिर उपयोग करें

Database.SetInitializer(new MyDbInit());

अपडेट 2

DeleteDBOnEveryRequest नामक एक नया खाली MVC4 एप्लिकेशन बनाएं .निम्नलिखित को Global.asax Application_start में रखें

protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);

            Database.SetInitializer<BlogContext>(new DropCreateDatabaseAlways<BlogContext>());    

            using (var context = new BlogContext())
            {
                context.Database.Initialize(force: true);
            }    
        }

डेटाबेस नियंत्रक . नामक एक नया नियंत्रक बनाएं दो क्रियाओं के साथ।

पहुंच . में कार्रवाई आप DB को हटाते हैं और पुन:निर्मित . पर रीडायरेक्ट करते हैं कार्रवाई जहां से आप एक डीबी बनाते हैं क्योंकि इसे पहले हटा दिया गया था।

namespace DeleteDBOnEveryRequest.Controllers
{
    public class DatabaseController : Controller
    {
        public ActionResult Access()
        {
            using (var context = new BlogContext())
            {
                context.Database.Delete();
            } 
            return RedirectToAction("Recreated");
        }

        public ActionResult Recreated()
        {
            using (var context = new BlogContext())
            {
                context.Database.Initialize(force: true);                
            }
            return View();
        }
    }
}

क्या आप यही चाहते थे?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाबेस से सभी कनेक्शनों को समाप्त करने के लिए स्क्रिप्ट (RESTRICTED_USER ROLLBACK से अधिक)

  2. एसएसआईएस स्क्रिप्ट घटक में तृतीय पक्ष डीएलएल संदर्भ जोड़ें

  3. SQL सर्वर समानांतर बैकअप पुनर्स्थापना -1

  4. समूह का उपयोग करके तालिका से अंतिम रिकॉर्ड का चयन करें

  5. स्क्रिप्ट संपूर्ण डेटाबेस SQL-सर्वर