ऐसा लगता है कि GetObjectKey को मौजूदा, तत्काल वस्तुओं, और फिर डेटा स्टोर की खोज करने का लाभ है। हालांकि, यह भी है कि आप मजबूत टाइपिंग के कुछ खो देते हैं, और अपने जिसके परिणामस्वरूप वस्तु कास्ट करने के लिए की जरूरत है लगता है:LINQ क्वेरी या GetObjectKey का उपयोग कर एकल इकाई फ्रेमवर्क इकाइयों को पुनर्प्राप्त करें?
int customerID = 1;
Customer customer = (from c in context.Customers
where c.CustomerID = customerID
select c).FirstOrDefault();
निजी तौर पर
int customerID = 1;
EntityKey key = new EntityKey("MyEntities.Customers", "CustomerID", customerID);
Customer customer = context.GetObjectByKey(key) as Customer;
बनाम LINQ
GetObjectKey, मैं उत्तरार्द्ध पसंद करते हैं टाइपिंग की वजह से विधि। साथ ही, आपके डीएएल सभी प्रश्नों के प्रश्नों के साथ काफी समान होंगे, हालांकि यह सिर्फ एक व्यक्तिगत वरीयता है।
आप लड़कों और लड़कियों का क्या उपयोग करते हैं?
पूर्व विधि में मैं कलाकार के बजाय "as" कीवर्ड का उपयोग करूंगा। इस तरह यदि परिणाम शून्य है तो यह अपवाद नहीं फेंक देगा। चूंकि कीवर्ड मूल्य डालने का प्रयास करता है लेकिन यदि यह सही प्रकार नहीं है तो यह आपको बदले में देता है। तो आपके पास संदर्भ होगा। ग्राहक के रूप में GetObjectByKey (कुंजी); –
अच्छा बिंदु। मैं थोड़ा सा स्कोर भी उदाहरण को संशोधित करूंगा। –