The method 'Skip' is only supported for sorted input in LINQ to Entities. The method 'OrderBy' must be called before the method 'Skip'

Abhishek gupta picture Abhishek gupta · Jun 27, 2012 · Viewed 10.7k times · Source

I am working on a Dynamic data.

after creating a dynamic model and registering in global.asax, like

DefaultModel.RegisterContext(typeof(masterEntities1),new ContextConfiguration() { ScaffoldAllTables = true }); 

when i run an application, it shows a list of tables but when i click any of the table it throws an exception:

The method 'Skip' is only supported for sorted input in LINQ to Entities. The method 'OrderBy' must be called before the method 'Skip'.

but i haven't declare any query into my application.

Answer

atconway picture atconway · Jan 15, 2014

You must call .OrderBy' on your query if you use the .Skip method. For example if you were using something similar to the following:

results = results.Skip(pageNumber * size).Take(size);

In the case above you would have previously had to use the .OrderBy to order the query if you are planning on using paging methods or something of the like. If you have an Id field, adding this onto your original query expression should eliminate the error:

.OrderBy(x => x.Id);