मेरे पास एक एंटिटी फ्रेमवर्क कोर + एएसपी.नेट कोर एप्लिकेशन है और जब मेरा एप्लिकेशन शुरू होता है, तो मैं यह सुनिश्चित करना चाहता हूं कि डेटाबेस बनाया गया है, और अंततः (माइग्रेशन होने के बाद) मैं यह सुनिश्चित करना चाहता हूं कि वे भी चल रहे हैं।मुझे डेटाबेस कहां रखना चाहिए। सुनिश्चित करें?
शुरू में मैं अपने DbContext
के निर्माता में Database.EnsureCreated()
डाल लेकिन यह है कि हर बार जब कोई अपने आवेदन हिट के बाद से DbContext
का एक नया उदाहरण हर बार बनाई गई है चलाने के लिए प्रकट होता है।
मैंने इसे अपने स्टार्टअप कोड में डालने की कोशिश की, लेकिन मुझे ऐसा करने के लिए मेरे DbContext
का एक उदाहरण चाहिए और यह स्पष्ट नहीं है कि वास्तव में एक को कैसे प्राप्त किया जाए। मैं इतनी के रूप में एफई को विन्यस्त कर रहा हूँ:
serviceCollection.AddEntityFramework()
.AddSqlServer()
.AddDbContext<Models.MyContext>(options => options.UseSqlServer(...));
मैं सेवा संग्रह से DbContext का एक उदाहरण प्राप्त करने के लिए एक तरह से नहीं दिख रहा है, और मैं में तो मैं कर सकते हैं एक DbContext इंजेक्षन में सभी उचित सिंगलटन नहीं दिख रहा है कुछ एक बार प्रारंभिक करें।
तो यह सुनिश्चित करने के लिए सबसे अच्छी जगह क्या है कि मेरे डीबीकॉन्टेक्स्ट से संबंधित कुछ कोड प्रति एप्लिकेशन चलाने के लिए बुलाए जाते हैं?
EnsureCreated परीक्षण के लिए है, उत्पादन के उपयोग के लिए नहीं – ErikEJ