दिलचस्प पोस्ट
एपीआई स्तर 11 से पहले AsyncTask.executeOnExecutor () डेटा फ्रेम में जेसन डेटा आयात करना फेसबुक फ्लक्स पर लालक्स का उपयोग क्यों करें? MVC तारीख समय गलत दिनांक प्रारूप के साथ बाध्यकारी एकाधिक async कार्यों को चलाने और उन्हें पूरा करने के लिए सभी के लिए प्रतीक्षा कर रहा है लोड कम। जेएस नियम गतिशील रूप से java.text.ParseException: अप्रभावी तिथि Tablefunc का उपयोग करते हुए एकाधिक कॉलम पर धुरी जावा का बिगडिस्कीबल। पॉवर (बिगडीकेमिल एक्सपोनेंट): क्या जावा लाइब्रेरी है जो यह करता है? लूप के उपयोग के लिए addEventListener और पासिंग मान सी # प्रतिबिंब और सभी संदर्भों को खोजने PHP में एक फ़ंक्शन द्वारा पहुंच सरणी वापस आ गया ऑप्टिमाइज्ड लेवेनशेटिन एल्गोरिथ्म का इस्तेमाल करते हुए निकटतम पड़ोसी ढूंढना त्रुटि: अप्रत्याशित प्रतीक / इनपुट / स्ट्रिंग स्थिर / संख्यात्मक निरंतर / मेरे कोड में विशेष जावा में लूप के लिए बढ़ाए गए सिंटैक्स क्या है?

इकाई फ़्रेमवर्क कोड पहले। प्राथमिक कुंजी ढूंढें

मैं कैसे पता लगा सकता है कि क्लास की कौन-सी संपत्ति इकाई ढाँचा कोड प्रथम संस्था POCO की प्राथमिक कुंजी है?

कृपया ध्यान दें आईडी / वर्ग नाम के लिए स्ट्रिंग मिलान + "आईडी" एक खराब विकल्प है। एंटीटी फ़्रेमवर्क द्वारा उपयोग किए गए सम्मेलन को खोदने के लिए और मज़बूती से महत्वपूर्ण संपत्ति प्राप्त करने का कोई तरीका होना चाहिए

अग्रिम में धन्यवाद।

वेब के समाधान से एकत्रित समाधान "इकाई फ़्रेमवर्क कोड पहले। प्राथमिक कुंजी ढूंढें"

आप प्रमुख गुणों के नाम प्राप्त करने के लिए मैपिंग मेटाडेटा पूछ सकते हैं (और फिर एक हो सकता है):

ObjectContext objectContext = ((IObjectContextAdapter)dbContext).ObjectContext; ObjectSet<YourEntity> set = objectContext.CreateObjectSet<YourEntity>(); IEnumerable<string> keyNames = set.EntitySet.ElementType .KeyMembers .Select(k => k.Name); 

आपके पास कुंजी नाम होने के बाद आप उनके मूल्यों का उपयोग करने के लिए प्रतिबिंब का उपयोग कर सकते हैं।

जैसा कि आप देख सकते हैं कि ऑब्जेक्ट कोडेक्ट एन्कोडिंग एपिसोड पर पहुंच वापस आता है क्योंकि DbContext API केवल सरल परिदृश्यों के लिए है, जहां आप मैपिंग मेटाडेटा जैसे विवरणों से परेशान नहीं हैं।

यदि यह किसी को मदद करता है, तो मुझे पहले से यह जानने के बिना ऐसा करने में सक्षम होना चाहिए (इसलिए मैं आसानी से CreateObjectSet<YourEntity>() नहीं कर सकता क्योंकि मुझे आपकी YourEntity नहीं पता था), इसलिए मैं @ लादिस्लाव के समाधान निम्नलिखित में हैं:

 // variable "type" is a System.Type passed in as a method parameter ObjectContext objectContext = ((IObjectContextAdapter)this.context).ObjectContext; IEnumerable<string> retval = (IEnumerable<string>)objectContext.MetadataWorkspace .GetType(type.Name, type.Namespace, System.Data.Entity.Core.Metadata.Edm.DataSpace.CSpace) .MetadataProperties .Where(mp => mp.Name == "KeyMembers") .First() .Value; 

ऐसा अजीब तरह लगता है कि MetadataWorkspace.GetType वर्क्सस्पेस। गेटटाइप के लिए नाम और नाम स्थान की स्ट्रिंग्स की आवश्यकता होती है, बजाय System.Type, लेकिन यह सबसे अच्छा है जो मुझे मिल सकता है।

ईएफ 6.1 में एक Db() विस्तार पद्धति है जो यह आसान बनाता है।

उदाहरण:

 public static IEnumerable<string> GetPrimaryKeyPropertyNames(DbContext db, Type entityType) { return db.Db(entityType).Pks.Select(x => x.PropertyName); } 

तालिका प्रति प्रकार विरासत के कारण मुझे उपरोक्त दोनों तरीकों के साथ समस्या थी मेरा कामकाजी संस्करण (@ एस'एफटी'के के समाधान पर आधारित है, लेकिन डेटास्पेस के उपयोग से। OSpace को इस कारण से डाटास्पेस नहीं। सीएसपीएस) नीचे है:

  protected IEnumerable<string> GetKeyPropertyNames() { var objectContext = ((System.Data.Entity.Infrastructure.IObjectContextAdapter) this.Context).ObjectContext; return GetKeyPropertyNames(typeof (TEntity), objectContext.MetadataWorkspace); } private static IEnumerable<string> GetKeyPropertyNames(Type type, MetadataWorkspace workspace) { EdmType edmType; if (workspace.TryGetType(type.Name, type.Namespace, DataSpace.OSpace, out edmType)) { return edmType.MetadataProperties.Where(mp => mp.Name == "KeyMembers") .SelectMany(mp => mp.Value as ReadOnlyMetadataCollection<EdmMember>) .OfType<EdmProperty>().Select(edmProperty => edmProperty.Name); } return null; } 

उपयोगकर्ता की तरह, मैं भी उपयोगकर्ता लादिस्लाव मृणाका के उत्तर का एक प्रकार चाहता था, जिसे केवल समय के संकलन के प्रकार जानने के लिए रनटाइम पर टाइप करने की आवश्यकता होती है। इसके अलावा उपयोगकर्ता राशलेहप की तरह, उपयोगकर्ता एस'फट'क्र का समाधान मेरे लिए काम नहीं करता, लेकिन उसका समाधान काम करता था। नीचे, मैं इस वार्तालाप में योगदान करता हूं, जो उनके जवाब का एक सरल संस्करण प्रदान करता है जो मेरे लिए काम करता था हालांकि, मैं सिर्फ उपयोगकर्ता अंजद्रे के समाधान के बारे में सीखा है और वह यही है जो मैं उपयोग कर रहा हूं।

 // variable "type" is a System.Type passed in as a method parameter ((IObjectContextAdapter)context) .ObjectContext .MetadataWorkspace .GetItem<EntityType>(type.FullName, DataSpace.OSpace) .KeyProperties .Select(p => p.Name);