2012-01-19 9 views
6

क्या एक ईएफ इकाई बनाना संभव है जो आपको रिकॉर्ड बनाने की अनुमति देता है लेकिन अद्यतन और हटा देता है। मेरे पास डेटा ऑब्जेक्ट है कि मैं कोड को डीबी में रिकॉर्ड बनाने की अनुमति देना चाहता हूं लेकिन उन्हें बदलने या हटाने की अनुमति नहीं दी जानी चाहिए। मैं ईएफ कोड पहले दृष्टिकोण का उपयोग कर रहा हूँ।क्या ईएफ कोड प्रथम संस्थाओं पर अद्यतन/हटाएं अक्षम करना संभव है?

+0

क्या आपके संदर्भ को एक रिपोजिटरी में समाहित करना संभव नहीं है जो केवल इकाइयों को जोड़ने का समर्थन करता हो? –

+0

वह विकल्प 2 था लेकिन नीचे दिए गए अनुसार ट्रैक ट्रैकर को ओवरराइड करने में कामयाब रहा। – Darren

उत्तर

6

हां आप अपने DbContext की SaveChanges विधि को ओवरराइड कर सकते हैं और इसे रोक सकते हैं।

public override int SaveChanges() 
{ 
    foreach (DbEntityEntry entity in this.ChangeTracker.Entries) 
    { 
     if (entity.State == System.Data.EntityState.Modified) 
      return; 
     // more logic, depending on your needs 
    } 

    base.SaveChanges(); 
} 
+0

इसके लिए धन्यवाद। इसका उपयोग करने के लिए और अपरिवर्तकों को अद्यतन/हटाए जाने के लिए राज्य को बदलने का प्रयास करें (entity.State = System.Data.EntityState.Unchanged;) और देखें कि क्या यह अन्य प्रकार के परिवर्तनों को सहेजने की अनुमति देता है। – Darren

+0

जैसा ऊपर बताया गया है, यह राज्य को अपरिवर्तित करने के साथ शानदार काम करता है, इसलिए परिवर्तन कभी रिकॉर्ड नहीं किए जाते हैं। धन्यवाद। – Darren

+0

मदद करने के लिए खुशी हुई! आपका दिन शुभ हो। – dknaack

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