जोड़ें मैं ईएफ के साथ एक सी # एएसपी.नेट एमवीसी 5 वेब अनुप्रयोग पर काम कर रहा हूं 5. ईएफ का उपयोग कर मेरे डेटाबेस टेबल का मानचित्रण DbContext
कक्षा और .edmx
फ़ाइल उत्पन्न करता है। आज, मैं a great article about creating generic DAL classes पढ़ रहा था, लेकिन मैं निम्न वाक्य पर बंद कर दिया:System.Data.EntityState.Add & DbSet के बीच मतभेदों (यदि कोई हो) के बारे में भ्रमित लेख और दस्तावेज़ीकरण।
ध्यान दें कि प्रवेश विधि का उपयोग कर एक इकाई की स्थिति बदलने केवल वास्तविक इकाई है कि आप विधि करने के लिए पारित प्रभावित करेगा। यह ग्राफ के माध्यम से कैस्केड नहीं करेगा और DbSet के विपरीत सभी संबंधित ऑब्जेक्ट्स, की स्थिति सेट करेगा। विधि जोड़ें।
के विपरीत है यही कारण है कि इन सवालों में बताया गया है:
- http://forums.asp.net/p/2015170/5803192.aspx
- http://forums.asp.net/p/2060606/5943259.aspx
- Difference between DbSet.Add(entity) and entity.State = EntityState.Added
- What is the difference between IDbSet.Add and DbEntityEntry.State = EntityState.Added?
सब से ऊपर सवालों के जवाब में, सभी उपयोगकर्ताओं ने उल्लेख किया कि System.Data.EntityState.Added
का उपयोग DbSet.Add
का उपयोग करने जैसा ही है। लेकिन मैंने जो लेख पहले उल्लेख किया है, वह बताता है कि System.Data.EntityState.Added
का उपयोग ग्राफ के माध्यम से कैस्केड नहीं किया जाएगा।
मेरे परीक्षण के आधार पर, मैंने निष्कर्ष निकाला है कि System.Data.EntityState.Added
DBset.Add
मामले में ग्राफ के माध्यम से कैस्केड करेगा। क्या लेख गलत है, या यह मेरा परीक्षण है और क्यू & ए है?
तो आप कह रहे हैं कि EntityState का उपयोग करना। जोड़ा गया और DBset का उपयोग करना। जोड़ें बिल्कुल वही हैं? –
हां, यदि आपकी इकाई किसी संदर्भ द्वारा ट्रैक नहीं की गई है, तो यह विधियां बिल्कुल वही परिणाम करेगी, ठीक उसी परिणाम के साथ, जिसे परीक्षण उदाहरण और स्रोत कोड अन्वेषण द्वारा पुष्टि की जाती है। – Evk
तो मान लें कि इकाई को संदर्भ द्वारा ट्रैक किया जा रहा है, तो क्या वे अलग होंगे? जैसा कि आपने कहा था "अगर आपकी इकाई को ट्रैक नहीं किया गया है ..." –