- IEnumerable System.Collections नेमस्पेस में मौजूद है।
- IQueryable System.Linq नेमस्पेस में मौजूद है।
- IEnumerable और IQueryable दोनों फॉरवर्ड कलेक्शन हैं।
- IEnumerable आलसी लोडिंग का समर्थन नहीं करता।
- IQueryable आलसी लोडिंग का समर्थन करता है।
- डेटाबेस से डेटा क्वेरी करते समय, IEnumerable सर्वर साइड पर एक सेलेक्ट क्वेरी निष्पादित करता है, डेटा को क्लाइंट-साइड पर मेमोरी में लोड करता है और फिर डेटा फ़िल्टर करता है।
- डेटाबेस से डेटा क्वेरी करते समय, IQueryable सभी फ़िल्टर्स के साथ सर्वर साइड पर सेलेक्ट क्वेरी निष्पादित करता है।
- IEnumerable एक्सटेंशन मेथड्स फंक्शनल ऑब्जेक्ट्स लेते हैं।
- IQueryable एक्सटेंशन मेथड्स एक्सप्रेशन ऑब्जेक्ट्स लेते हैं यानी एक्सप्रेशन ट्री।
उदाहरण
IEnumerable
dbContext dc = new dbContext();
IEnumerable<SocialMedia> list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
उपरोक्त क्वेरी के लिए जनरेटेड SQL स्टेटमेंट
SELECT [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0] WHERE [t0].[Name] LIKE @p0
IQueryable
dbContext dc = new dbContext();
IQueryable<SocialMedia> list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
उपरोक्त क्वेरी के लिए जनरेटेड SQL स्टेटमेंट
SELECT top 1 [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0] WHERE [t0].[Name] LIKE @p0