2013-01-09 10 views
6

संभव डुप्लिकेट:
LINQ2SQL: Cannot convert IQueryable<> to IOrderedQueryable errorपरोक्ष कनवर्ट नहीं कर सकता प्रकार 'System.Linq.IQueryable <>' को 'System.Linq.IOrderedQueryable <>'

मैं में इस त्रुटि होने

if (!String.IsNullOrEmpty(searchString)) 
{ 
    posts = posts.Where(post => post.Body == searchString); 
} 
: मेरे नियंत्रक के searchString ..

यहाँ

मेरी कोड है

मैं अपने इंडेक्स में अपनी खोज के लिए इस कोड का उपयोग कर रहा हूं। क्या मैंने यहां कुछ गलत घोषित किया था? मैंने पहले ही googling की कोशिश की लेकिन एक स्पष्ट जवाब नहीं मिला। जो कोई मेरी मदद कर सकता है के लिए अग्रिम धन्यवाद ..

+0

पद क्या है और आप कैसे की घोषणा की थी/इसका इस्तेमाल? – V4Vendetta

+1

यह धागा समान दिखता है: http://stackoverflow.com/questions/1732236/linq2sql-cannot-convert-iqueryable-to-iorderedqueryable-error क्या डेटाटाइप पोस्ट है? यह कहां से आया? क्या आप इसे कहीं भी सॉर्टिंग (ऑर्डरबी) कर रहे हैं? – JLRishe

उत्तर

16

सबसे संभावित कारण यह है कि आप एक प्रश्न एक OrderBy है कि में posts के लिए एक अंतर्निहित var घोषणा करते थे। यदि आप इसे

IQueryable<Post> posts = someSource.Where(cond).OrderBy(/*the culprit*/); 

त्रुटि को दूर करना चाहिए।

+0

व्हाओ .. हाँ तुम सही दोस्त हो .. आपका जवाब मेरे लिए पूरी तरह से काम करता है। यह काम करता है .. धन्यवाद :) .. !! – bot

0

पोस्ट IOrderedQueryable है और IQueeryable लौटने पर कॉल कहां है। आप स्पष्ट रूप से चर घोषित क्यों नहीं करते हैं और देखते हैं कि यह समस्या को हल करता है या नहीं।

5

आपका posts चर IOrderedQueryable<Post> प्रकार लगता है लेकिन आप इसे IQueryable<Post> असाइन कर रहे हैं। मैं इस मामले के निपटारे या तो अपने चर प्रकार संशोधित IQueryable<Post> है या इस तरह आपकी क्वेरी को सॉर्ट करने के लिए 2 तरीके देखें:

posts = posts.Where(post => post.Body == searchString) 
    .OrderBy(post => post.Date); 
संबंधित मुद्दे