हम यह पता लगाने की कोशिश कर रहे हैं कि वास्तव में एक इकाई फ्रेमवर्क डेटाबेस प्रारंभकर्ता कब चलता है।जब "पहली बार" DbContext डेटाबेस को एक्सेस करता है तो वास्तव में कब होता है?
MSDN initializion "पहली बार" हम डेटाबेस का उपयोग होता है कहते हैं। "पहली बार" कब होता है?
MSDN खुद के विपरीत है, कि प्रारंभ करते हुए कहा पहली बार एक उदाहरण एक DbContext
की प्रयोग किया जाता है, लेकिन यह भी पहली बार एक DbContext
के प्रकार प्रयोग किया जाता है चलाता है। जो यह है?
आगे, एमएसडीएन "पहली बार" परिभाषित नहीं करता है? प्रकाशित होने के बाद यह पहली बार है? एप्लिकेशन_स्टार्ट के बाद पहली बार? किसी दिए गए अनुरोध के लिए किसी दिए गए अनुरोध के लिए पहली बार? क्या होगा यदि हम web.config को बदलकर एप्लिकेशन को पुनरारंभ करें?
यहाँ MSDN से कुछ उद्धरण, कह डेटाबेस प्रारंभकर्ता चलाता रहे हैं ...
जब एक DBContext व्युत्पन्न वर्ग का एक उदाहरण के लिए पहली बार
http://msdn.microsoft.com/en-us/library/gg696323%28v=vs.113%29.aspx
के लिए प्रयोग किया जाता हैजब दिया गया डीबीकॉन्टेक्स्ट प्रकार पहली बार डेटाबेस तक पहुंचने के लिए उपयोग किया जाता है
http://msdn.microsoft.com/en-us/library/gg679461%28v=vs.113%29.aspx
उदाहरण के लिए, हम एक नियंत्रक कार्रवाई, जिसमें हम एक DbContext
का दृष्टांत और एक डालने आपरेशन चलाने की है। अगर हम इस क्रिया को दो बार (या 10,000 बार) कहते हैं, तो क्या DbInitializer
कई बार चलता है? हम DropDatabaseCreateAlways
प्रारंभकर्ता का उपयोग कर रहे हैं, और हम दो बार इस कार्रवाई फोन, Db दो Event
पंक्तियों होगा, या प्रारंभकर्ता आवेषण के बीच Db को नष्ट करेगा, तो इस तरह एक Event
पंक्ति छोड़ने?
public HttpResponseMessage PostEvent(EventDTO eventDTO)
{
var ev = new Event()
{
Id = eventDTO.Id,
Name = eventDTO.Name
};
using (AttendanceContext db = new AttendanceContext())
{
db.Events.Add(ev);
db.SaveChanges();
}
return Ok();
}
बहुत यकीन है कि यह तब होता है जब आप अपना पहला पढ़/अपडेट/हटा/डालें। – DavidG
या तो अपने डीबी या अपने आवेदन के चारों ओर एक पैकेट स्निफ़र सेट करें और जब ऐसा होता है तो अपने आप को देखें। – Servy
मेरे अनुभव से यह पहली बार डेटाबेस तक पहुंचने के लिए उपयोग किया जाता है। –