c# - Entity Framework 6 - Creating dynamic repository not working / Object not match target -
मैं इस कोड का उपयोग कर रहा हूं।
सार्वजनिक आभासी ऑब्जेक्ट & lt; BaseObject & gt; GetTypifiedBDOSet () {MethodInfo methodInfo = typeof (ऑब्जेक्टसिटी & lt; BaseObject & gt;) GetMethod ("OfType", नया प्रकार [] {}); MethodInfo genericMethodInfo = methodInfo.MakeGenericMethod (नया प्रकार [] {BDOType}); ObjectQuery परिणाम = genericMethodInfo.Invoke (DBContext.BaseSet, रिक्त) ObjectQuery के रूप में; ObjectQuery & LT; BaseObject & gt; ObjectQuery = result.Cast & lt; BaseObject & gt; () वस्तु के रूप में & lt; BaseObject & gt;; वापसी ऑब्जेक्ट; }
लेकिन मैं त्रुटि प्राप्त कर रहा हूं कि ऑब्जेक्ट को 5 लाइन में लक्ष्य से मेल नहीं खाता। (ऑब्जेक्टिज़्म परिणाम ...)
मैं एक गतिशील बनाना चाहता हूं ऑब्जेक्टसिटी & lt; BaseObject & gt;
ऑब्जेक्ट जिसमें मेरे लिए सटीक क्वेरी प्रकार शामिल है।
यदि मैं एक रिपॉजिटरी को गतिशील बना देता हूं तो मैं उस डेटाबेस से सभी प्रविष्टियों का चयन करना चाहता हूं, (बेस क्लास बेसऑब्जेक्ट है!) मैं टीपीसी रणनीति का उपयोग कर रहा हूं - तालिका प्रति संगीन।
ऊपर दिए गए उदाहरण से पहले मैंने यह कोड प्रयोग किया था।
सार्वजनिक आभासी ऑब्जेक्ट & lt; BaseObject & gt ; GetTypifiedBDOSet () {ObjectContext ऑब्जेक्ट कॉन्टैक्ट = ((IObjectContextAdapter) DBContext)। ऑब्जेक्टकॉन्टेक्स; ObjectSet & LT; BaseObject & gt; ObjectSet = objectContext.CreateObjectSet & lt; बेसऑब्जेक्ट & gt; (); वापसी ऑब्जेक्टसेट; }
लेकिन समस्या यह है कि मैं डेटाबेस से सभी प्रविष्टियां प्राप्त करता हूं, उदाहरण के लिए "ब्लॉग", "डाक" और "टिप्पणियां" भी। लेकिन मुझे केवल OfType & lt; BDOType & gt;
प्रविष्टियां चाहिए (BDOType "ब्लॉग", "पोस्ट" या "टिप्पणी" का एक प्रकार हो सकता है)
अग्रिम धन्यवाद!
आह! यह काम करता है परीक्षण के घंटे: डी
सार्वजनिक वर्चुअल ऑब्जेक्ट & lt; BaseObject & gt; GetTypifiedBDOSet () {ऑब्जेक्टसेट & lt; बेस ऑब्जेक्ट & gt; ObjectSet = ((IObjectContextAdapter) DBContext)। ऑब्जेक्ट कॉन्टैक्ट। क्रेटऑब्जेक्टसेट & lt; बेसऑब्जेक्ट & gt; (); MethodInfo methodInfo = objectSet.GetType ()। GetMethod ("OfType", नया प्रकार [] {}); ObjectQuery परिणाम = methodInfo.MakeGenericMethod (नया प्रकार [] {BDOType})। ऑब्जेक्ट के रूप में ऑब्जेक्ट (ऑब्जेक्टसेट, रिक्त); रिटर्न (ऑब्जेक्टसिटी & lt; BaseObject & gt;) परिणाम। ऑप्टीप & lt; बेस ऑब्जेक्ट & gt; (); }
Comments
Post a Comment