यह भी प्रतिबिंब के बिना संभव है:
using (var context = new ModelContainer())
{
// Access CSDL
var container = context.MetadataWorkspace
.GetEntityContainer(context.DefaultContainerName, DataSpace.CSpace);
// Access name of related set exposed on your context
var set = container.BaseEntitySets[context.YourEntitySet.EntitySet.Name];
// Access all properties
var properties = set.ElementType.Members.Select(m => m.Name).ToList();
// Access only keys
var keys = set.ElementType.KeyMembers.Select(m => m.Name).ToList();
}
आप देख सकते हैं आप और अधिक तो नाम की पहुंच है। उदाहरण दिखाता है कि अब आप कौन सी संपत्ति कुंजी का हिस्सा हो सकते हैं। यदि आप सीधे Members
तक पहुंचते हैं तो आप जान सकते हैं कि कौन सी संपत्ति स्केलर, जटिल प्रकार या नेविगेशन प्रॉपर्टी है।
सभी जानकारी पहले ही लोड हो चुकी है इसलिए प्रतिबिंब की कोई आवश्यकता नहीं है। यदि आप प्रतिबिंब का उपयोग करना चाहते हैं तो इसे केवल एक बार उपयोग करना न भूलें (पहली बार आपको इसकी आवश्यकता हो) और फिर प्राप्त संपत्ति नामों को संग्रहीत और पुन: उपयोग करें। प्रतिबिंब धीमा है इसलिए जब भी आपको नामों की आवश्यकता होती है तो इसका उपयोग करना एक बुरा अभ्यास है।
स्रोत
2011-05-01 22:11:09
तो, क्या आपको अपनी सारी चीज़ें "EntityKey" और "EntityState" मिल रही हैं या क्या वे दो ही हैं जिन्हें आप वापस प्राप्त कर रहे हैं? –
@ बाला आर: मुझे हर चीज मिलती है जो मैंने – Dabbas