2011-12-28 4 views
23

के साथ ExecuteStoreQuery मैं एंटीटी फ्रेमवर्क के ExecuteStoreQuery फ़ंक्शन का उपयोग करना चाहता हूं और मुझे आश्चर्य हुआ कि मेरे संदर्भ चर में ExecuteStoreQuery विधि नहीं थी।Deccontext

तो, मैंने पाया कि यह ObjectContext वर्ग का एक तरीका है, लेकिन मैंने पहले से ही अपने आवेदन के लिए DbContext का उपयोग किया है। मैंने DbContext को ObjectContext के साथ बदलने की कोशिश की थी, लेकिन इसमें कुछ त्रुटियां आईं (उदाहरण के लिए, ऑब्जेक्ट कॉन्टेक्स्ट में OnModelCreating विधि नहीं है)।

मैं डीबीकॉन्टेक्स्ट के साथ ExecuteStoreQuery का उपयोग कैसे कर सकता हूं और यदि मैं नहीं कर सकता, तो ExecuteStoreQuery का कोई विकल्प डीबीकॉन्टेक्स्ट में है?

उत्तर

37

DbContext बस ObjectContext के आसपास एक रैपर है।

तुम अब भी IObjectContextAdapter

(dbContext as IObjectContextAdapter).ObjectContext; 
+0

मैं अपने आवेदन में सफलतापूर्वक इस विधि का उपयोग। – Hammerstein

34

मैं चाहता हूँ का उपयोग कर जोड़ने के लिए मुझे लगता है कि अब सही तरीका है द्वारा मूल ObjectContext पहुँच सकते हैं:

dbContext.Database.SqlQuery<T>(string sql); 
+1

यदि आप लौटाई गई वस्तुओं में परिवर्तनों को ट्रैक करना चाहते हैं, तो आपको dbContext.tablename.SqlQuery (...) पर विचार करना चाहिए जहां tablename आपका संग्रह नाम है। (यानी एक डीबीसेट) –