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

Popular posts from this blog

c# - SignalR: "Protocol error: Unknown transport." when navigating to hub -

class - Kivy: how to instantiate a dynamic classes in python -

python - mayavi mapping a discrete colorbar on a surface -