2011-05-18 13 views
12

मैं इकाई फ्रेमवर्क 4.1 कोड का पहला दृष्टिकोण उपयोग कर रहा हूं।इकाई फ्रेमवर्क 4.1 डिफ़ॉल्ट उत्सुक लोडिंग

मैं अपने dafault विन्यास के रूप में उत्सुक लोड हो रहा है बनाना चाहते हैं, और उस से बचने का उपयोग करके प्रत्येक प्राप्त कर रहा है क्वेरी में विस्तार विधि को शामिल करें।

के रूप में MSDN में सिफारिश की, DbContext निर्माता पर सरल आलसी संपत्ति को बदलने मैंने किया:

public class EMarketContext : DbContext 
{ 
    public EMarketContext() 
    { 
     // Change the default lazy loading to eager loading 
     this.Configuration.LazyLoadingEnabled = false; 
    } 
} 

दुर्भाग्य से, इस दृष्टिकोण से काम नहीं कर रहा है। मुझे प्रत्येक क्वेरी में उत्सुक लोडिंग करने के लिए शामिल विधि का उपयोग करना होगा। कोई विचार क्यों? अग्रिम धन्यवाद।

उत्तर

25

उत्सुक लोडिंग के लिए कोई डिफ़ॉल्ट कॉन्फ़िगरेशन नहीं है। आपको हमेशा Include को परिभाषित करना होगा या कुछ पुन: प्रयोज्य विधि बनाना होगा जो जोड़ना शामिल करेगा। उदाहरण के लिए आप अपने संदर्भ में समान विधि डाल सकते हैं:

public IQueryable<MyEntity> GetMyEntities() 
{ 
    return this.MyEntities.Include(e => e.SomeOtherEntities); 
} 
+0

ADO.Net डेवलपर्स के अनुसार, आप गलत हैं। इसे देखें: http://blogs.msdn.com/b/adonet/archive/2011/01/31/using-dbcontext-in-ef-feature-ctp5-part-6-loading-related-entities.aspx? टिप्पणी पोस्ट किया गया = सच # टिप्पणी संदेश – Sean

+0

नहीं, मैं गलत नहीं हूं। मुझे यह आलेख पता है और कोई भी भाग नहीं है जो "स्थायी 'शामिल' ' –

+0

का वर्णन करेगा) कृपया (बीच में) देखें:" सभी इकाइयों के लिए आलसी लोडिंग बंद करें "। – Sean

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