c# - How to assign concret DbSet to Dbset<Interface> -
मुझे नहीं पता कि कैसे एक कंक्रीट DbSet को DbSet & lt; इंटरफ़ेस & gt;
यह मेरी GoogleToken वर्ग है जो IProviderToken लागू करता है:
सार्वजनिक वर्ग GoogleToken: IProviderToken {[Key] Public Guid Id {get; सेट; } [आवश्यक] सार्वजनिक गाइड उपयोगकर्ता आईडी {get; सेट; } [मैक्सलेेंथ (500)] सार्वजनिक स्ट्रिंग टोकन {प्राप्त; सेट; }} और ड्रॉपबॉक्सटोकन के लिए भी यही है:
सार्वजनिक वर्ग ड्रॉपबॉक्सटोकन: आईपीओवरटोकन {[कुंजी] सार्वजनिक गाइड आईडी {प्राप्त; सेट; } [आवश्यक] सार्वजनिक गाइड उपयोगकर्ता आईडी {get; सेट; } [मैक्सलेेंथ (500)] सार्वजनिक स्ट्रिंग टोकन {प्राप्त; सेट; }} फिर, कैसे DbSet & lt; GoogleToken & gt; या DbSet & lt; DropboxToken & gt; को DbSet & lt; IProviderToken & gt; निम्न कोड में है?
सार्वजनिक एएसआईएनसीके टास्क & lt; bool & gt; AddExternalTokenAynync (आईपीओवरट टोकन प्रदाता टॉक करें) {DbSet & lt; IProviderToken & gt; प्रदाताटेकेंस = नल; स्विच (प्रदाता टूक। गेटटाइप ()। ToString ()) {"Google" नाम: providerTokens = context.GoogleTokens; टूटना; मामले "ड्रॉपबॉक्स": providerTokens = context.DropboxTokens; टूटना; } ... त्रुटि पंक्ति में है: providerTokens = context.GoogleTokens; : परन्तु '' DbSet & lt; GoogleToken & gt; 'से' डीबीएसेट & lt; IProviderToken & gt; '
संपादित
जहां तक मुझे पता है कि प्रकार संगत हैं, क्योंकि मैं कर सकता हूं:
आईपीओवरट टोकन टोकन = नल; स्विच (प्रदाता टूक। गेटटाइप ()। टूस्ट्रिंग ()) {"Google" के मामले: टोकन = नया Google टोकन (); टूटना; मामले "ड्रॉपबॉक्स": टोकन = नया ड्रॉपबॉक्सटोकन (); टूटना; } तो समस्या DbSet पर दिखाई देती है।
Comments
Post a Comment