2012-10-07 16 views
7

मैंने अपनी इकाई फ्रेमवर्क 4.3 डेटाबेस को नई इकाई फ्रेमवर्क के लिए पहली परियोजना को अपग्रेड किया। स्पष्ट रूप से अब मैं ऑब्जेक्ट कॉन्टेक्स्ट के बजाय डीबीकॉन्टेक्स्ट का उपयोग कर रहा हूं। एंटीटी फ्रेमवर्क में लोडप्रोपर्टी 5

मैंने अपनी पुरानी .edmx फ़ाइल को एक नए से बदल दिया है।

using (var context = new MyEntities()) 
{ 
    Models.User user = context.Users.First(x => x.GUID == guid); 
    context.LoadProperty(user, o => o.Settings); 
    return user; 
} 

ऐसा लगता है कि LoadProperty DbContext में उपलब्ध तरीका नहीं है: मेरा पुराना व्यवसाय कोड, कि पहले मेरी 4.3 .edmx फ़ाइल का उपयोग किया गया था, अब कोड LoadProperty विधि का उपयोग कर के साथ एक समस्या है।

मैं वैसे भी मजबूत टाइप लोडिंग कैसे प्राप्त कर सकता हूं?

मैं मैं

context.Users.Include("Settings") 

इस्तेमाल कर सकते हैं लगता है, लेकिन है कि मजबूत टाइप और लिखने की त्रुटियों की संभावना नहीं है।

+1

आप EF4.3 का उपयोग नहीं कर रहे थे यदि आपने ऑब्जेक्ट कॉन्टेक्स्ट - EF4.3 का उपयोग मूल रूप से डीबीकॉन्टेक्स्ट के बारे में किया था ... यदि आलसी लोडिंग सक्षम है तो आप इसका उपयोग कर सकते हैं। सेटिंग्स को स्पष्ट रूप से लोड किए बिना। ध्यान दें कि यह किसी डेटाबेस की यात्रा को ट्रिगर कर सकता है ताकि यदि आप इसे अक्सर कर रहे हैं तो यह उपयोग करने के लिए सस्ता हो सकता है। शामिल करें() नीचे बताए गए अनुसार। – Pawel

+0

@ पावेल: ओह क्षमा करें। मैंने अद्यतन के बाद सामना की एक और समस्या के बारे में एक प्रश्न पढ़ा और मेरी स्थिति का बेहतर वर्णन करने के लिए इसे "प्रशिक्षु" के साथ उद्धृत किया। मैंने उस वाक्य को दबा दिया। – citronas

उत्तर

15

आप लैम्ब्डा के साथ भी शामिल विधि का उपयोग कर सकते हैं। क्योंकि यह शामिल करें कथन का उपयोग मत भूलना, DbExtension वर्ग से आता है:

using System.Data.Entity; 

...

context.Users.Include(u => u.Settings); 

यहाँ शामिल विस्तार विधि के बारे में कुछ जानकारी है: msdn info

+0

बहुत बढ़िया! ठीक वही जो मेरे द्वारा खोजा जा रहा था! मुझे उम्मीद है कि आपका उत्तर अन्य समस्याओं की मदद करेगा – citronas

+0

महाकाव्य एक्सटेंशन मुझे कहना होगा। यह बहुत अच्छा है क्योंकि यह दृढ़ता से टाइप किया गया है। –

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