2013-01-09 16 views
6

Powiel możliwe:
LINQ2SQL: Cannot convert IQueryable<> to IOrderedQueryable errornie można niejawnie przekonwertować typu 'System.Linq.IQueryable <>' do 'System.Linq.IOrderedQueryable <>'

I o tego błędu w searchString mojego kontrolera ..

tutaj jest moje kody:

if (!String.IsNullOrEmpty(searchString)) 
{ 
    posts = posts.Where(post => post.Body == searchString); 
} 

Używam tych kodów do wyszukiwania w indeksie. Czy zadeklarowałem tutaj coś złego? Próbowałem już google, ale nie znalazłem jednoznacznej odpowiedzi. Z góry dziękuję wszystkim, którzy mogą mi pomóc ..

+0

Czym jest post i jak pan zadeklarować/używać? – V4Vendetta

+1

Ten wątek wygląda podobnie: http://stackoverflow.com/questions/1732236/linq2sql-cannot-convert-iqueryable-to-iorderedqueryable-error Czym jest typ danych? Skąd się to wzięło? Czy robisz w nim jakiekolwiek sortowanie (orderby)? – JLRishe

Odpowiedz

16

Najbardziej prawdopodobną przyczyną jest użycie domyślnej deklaracji var dla posts w zapytaniu o numerze OrderBy. Jeśli zastąpisz go tym, że błąd powinien zniknąć, należy go wymienić.

+0

whoa .. Tak, masz rację ... Twoja odpowiedź działa idealnie dla mnie. Działa .. Dzięki :) .. !! – bot

0

posty to IOrderedQueryable i wywołanie miejsca zwracającego IQueeryable. Dlaczego jawnie nie deklarujesz zmiennej i nie widzisz, czy to rozwiązuje problem.

5

Twoja zmienna wydaje się być typu IOrderedQueryable<Post>, ale przypisujesz jej wartość IQueryable<Post>. Widzę 2 sposoby, aby rozwiązać ten problem, albo modyfikują swój typ zmiennej być IQueryable<Post> lub sortowania zapytanie tak:

posts = posts.Where(post => post.Body == searchString) 
    .OrderBy(post => post.Date); 
Powiązane problemy