2014-07-10 12 views
11

कृपया मैं कैसे गतिशील प्रॉक्सी 5.इकाई की रूपरेखा में अक्षम गतिशील प्रॉक्सी विश्व स्तर पर

वर्तमान में इकाई की रूपरेखा में बनाए गए सभी संस्थाओं के लिए निष्क्रिय कर सकते हैं, मैं इस espEntities.Configuration.ProxyCreationEnabled = false की स्थापना कर रहा हूँ; एक dbcontext के प्रत्येक उदाहरण में एक तरीका है कि मैं वर्तमान और भविष्य के मॉडल के लिए एक बार कार्य के रूप में ऐसा कर सकता हूं।

tahnks

उत्तर

20

विधि 1

आप एक edmx मॉडल है, एक आंशिक वर्ग बनाया जाता है। कि का उपयोग करें और OnContextCreated में आप ProxyCreationEnabled

public partial class MyModelContainer 
{ 
    public void OnContextCreated() 
    { 
     this.Configuration.ContextOptions.ProxyCreationEnabled = false; 
    } 
} 

विधि 2

संपादित model.tt फ़ाइल निष्क्रिय कर सकते हैं। कुछ लाइन युक्त इस तरह का पता लगाएं:

partial class <#=code.Escape(container)#> : DbContext 

और में

this.Configuration.ProxyCreationEnabled = false; 

विधि 3

आप एक edmx फ़ाइल का उपयोग नहीं कर रहे हैं, तो जोड़ने के लिए, अपने संदर्भ निर्माता में यह कार्य करें: (मानते हुए कि आपका संदर्भ EspEntities कहलाता है)

public class EspEntities : DbContext 
{ 
    public EspEntities() 
    { 
     Configuration.ProxyCreationEnabled = false; 
    } 
} 
+0

हैलो डेविड, मुझे लगता है कि टी वह इस मामले में संदर्भ कन्स्ट्रक्टर model.context.cs में पाया जाता है। हालांकि, अगर ऐसा है, तो ईडीएमएक्स मॉडल अपडेट होने पर यह एक मुद्दा पैदा करता है और परिवर्तन ओवरराइट हो जाएंगे? – user989865

+0

आपके लिए एक संपादन बनाया गया है। – DavidG

+0

प्रॉक्सी निर्माण! = आलसी लोडिंग। आलसी लोडिंग को प्रॉक्सी सृजन की आवश्यकता होती है, लेकिन इसे अक्षम करने से प्रॉक्सी निर्माण अक्षम नहीं होता है। प्रॉक्सी निर्माण भी आवश्यक है (और उपयोग किया जाता है) उदाहरण के लिए ट्रैकिंग बदलना आपका मूल विकल्प अच्छा है, जब तक आप या तो टेम्पलेट में परिवर्तन (टेम्पलेट के आउटपुट के बजाय) में परिवर्तन करते हैं, या इसे एक नई फ़ाइल में जोड़ते हैं (कक्षा आंशिक कक्षा होनी चाहिए, इसलिए इसे अन्य फ़ाइलों में विस्तारित किया जा सकता है) । – hvd

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