मुझे निम्न कोड में एक समस्या है:
सार्वजनिक IEnumerable & lt; ISession & gt; GetSessions () {// ... का उपयोग कर (ProvaDbEntities DBEntities = नया ProvaDbEntities (उपयोगिताओं। ToEntitiesConnectionString ())) {ObjectQuery & lt; सत्र & gt; सत्र = DBEntities.Session; IEnumerable & LT; सत्र & gt; सत्र में सत्र से q1 = सत्र सत्र में == this.Name चयन सत्र; सूची के & lt; सत्र & gt; SessionList = नई सूची & lt; सत्र & gt; (); विदेशी (वर्त्तमान में q1) {sessionList.Add (नया सत्र (s.id.ToString (), s.username, s.site, नई दिनांकटाइम ())); } IEnumerable & lt; सत्र & gt; Res = sessionList; वापसी सत्र सूची; }}
अपवाद है:
ऑब्जेक्ट प्रकार को निकालने के लिए संभव नहीं है 'System.Collections.Generic.List`1 [prova3.Session]' टाइप करने के लिए 'System.Collections.Generic.IEnumerable`1 [TAP2009.AuctionSite.Interfaces.isession]'।।
इसे देखकर सही लगता है। क्या मैं गलत हूं?
यह ठीक होना चाहिए, जब तक कि सत्र
लागू करता है इएसशन
- यदि आप सी # 4 और .NET 4. का प्रयोग कर रहे हैं। यदि आप नहीं हैं, तो यह नहीं होगा।
ध्यान दें कि प्रश्न जिसे आपने दोनों मामलों में एक ही "टी" का इस्तेमाल करने के लिए भेजा है - जबकि अपवाद जो आपने प्राप्त किया है, वह एक सूची & lt; सत्र & gt;
को एक IEnumerable & lt; ISession & gt;
आपने यह नहीं बताया है कि आपको अपवाद कहां मिल रहा है, जो कि वास्तव में देख रहा है कि क्या वास्तव में यह थोड़ा कठिन है ... क्या आप सुनिश्चित हैं कि ऐसा वास्तव में जो कोड असफल हो रहा है? क्या आप सुनिश्चित हैं कि आप संकलन-समय की विफलता के बजाय अपवाद प्राप्त कर रहे हैं?
संपादित करें: यदि आप .NET 4 और C # 4 का उपयोग नहीं कर रहे हैं, तो सहानुभूति के लिए समाधान सरल है - यहां उपयोग करें कास्ट & lt; T & gt; ()
LINQ ऑपरेटर:
वापसी सत्र लिस्ट। क्रस्ट & lt; ISession & gt; ();
Comments
Post a Comment