2011-04-30 13 views

उत्तर

7

कोई ऐसी अंतर्निहित कार्यक्षमता नहीं है - आपको अपना खुद का निर्माण करना होगा।

public void SaveOrUpdate(MyEntity entity) 
{ 
    if (entity.Id == 0) 
    { 
     context.MyEntities.AddObject(entity); 
    } 
    else 
    { 
     context.MyEntities.Attach(entity); 
     context.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified); 
    } 

    // You can call SaveChanges here or you can call it separately after multiple changes 
} 

यह अलग इकाई जो Id ऑटो डेटाबेस (IDENTITY) में उत्पन्न किया है के साथ काम करने के लिए उदाहरण है: बहुत आम की तरह उदाहरण के दृष्टिकोण के लिए है। नई इकाई के लिए डिफ़ॉल्ट आईडी हमेशा 0 है क्योंकि वास्तविक मूल्य परिवर्तनों को सहेजने के दौरान असाइन किया जाएगा।

+0

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

+4

लेकिन यदि आप पहले से ही नहीं जानते हैं कि ऑब्जेक्ट डेटाबेस में मौजूद है या नहीं? 'MERGE' कथन यह निर्धारित करने के लिए ठीक है कि ऑब्जेक्ट मौजूद है या नहीं, और * आवश्यकतानुसार अपडेट या डालने *। –

+1

आप हटाए गए भाग को याद करते हैं। – Azimuth

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