2012-02-28 7 views
5

के बीच क्या अंतर है क्या कोई निम्नलिखित विवरणों में अंतर, यदि कोई है, तो क्या कोई जानता है?इन दो कथनों (इकाई फ्रेमवर्क)

_context.AddObject(user); 

_context.Users.AddObject(user); 

के साथ-साथ

_context.Attach(user); 

_context.Users.Attach(user); 

धन्यवाद

संपादित

क्षमा कुछ भ्रम की स्थिति:

मैं AddObject के बीच अंतर पता है और संलग्न, मैं क्या मतलब था टी में कोई अंतर है

AddObject सेट Added करने के लिए राज्य आपत्ति है, यह Unchanged को Attach सेट: वह जिस तरह से आप AddObject अर्थात

_context.AddObject(user); 
_context.Users.AddObject(user); 

उत्तर

1

एक ऑब्जेक्ट कॉन्टेक्स्ट में एक ही स्कीमा के साथ कई सेट हो सकते हैं, इसलिए सामान्य सेट का उपयोग करना सामान्य रूप से बेहतर होता है। यानी _context.Users.AddObject(user);

MSDN से:

.नेट फ्रेमवर्क संस्करण 4 में, हम अनुशंसा करते हैं कि आप ObjectSet वस्तु पर तरीकों का उपयोग, बनाएं, प्रदर्शन करने के लिए पढ़ने, हटाने देते हैं, और अद्यतन आपरेशनों। ऑब्जेक्टसेट ऑब्जेक्टक्वियर से निकला है, इसलिए यह क्वेरी ऑब्जेक्ट के रूप में काम करता है।

.नेट फ्रेमवर्क संस्करण 4 के साथ शुरू संस्करणों में, आप निम्न विधियों में बराबर वालों ObjectContext पर परिभाषित के बजाय ObjectSet पर परिभाषित का उपयोग कर सकते हैं:

AddObject 
Attach 
ApplyCurrentValues 
ApplyOriginalValues 
DeleteObject 
Detach 
0

MSDN answer

सारांश का उपयोग करें। यदि आप बाद में SaveChanges() विधि को कॉल करते हैं, तो संदर्भ AddObject द्वारा स्टोरेज में जोड़ा गया ऑब्जेक्ट डालने का प्रयास करेगा, जबकि Attach द्वारा जोड़ा गया ऑब्जेक्ट अपरिवर्तित समझा जाएगा और इसके लिए कोई कार्रवाई नहीं की जाएगी।

0

क्योंकि आपके उदाहरण सरल अंतर नहीं है गलत हैं यह

context.AddObject(user) 

लेकिन

context.AddObject("UserEntitySet", user) 

नहीं है आप संदर्भ आप संदर्भ सेट आप जोड़ सकते हैं या wheres करने के लिए अपने वस्तु देते हैं, तो आप सीधे पर कार्यान्वयन का उपयोग करना चाहते बताना होगा पर AddObject या Attach सीधे का उपयोग करते हैं ObjectSet इसमें पहले से ही यह जानकारी दृढ़ता से टाइप किए गए तरीके से लिपटी है।

आईएमएचओ उन विधियों को केवल ईएफवी 1 (.NET 3.5 SP1) के साथ पिछड़ा संगतता के रूप में मौजूद है जहां ObjectSet मौजूद नहीं था।

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