i have an extension method which a person was really helpful to give me... it does an orderby on IQueryable ... but i wanted one to do a normal IQueryable (non generic)
Well, quite simply those methods aren't available for IQueryable. If you look at the Queryable methods you'll see they're almost all based on IQueryable.
If your data source will really be an IQueryable at execution time, and you just don't know what T is, then you could find that out with reflection... or in C# 4, just use dynamic typing:
public static IQueryable GetPage(this IQueryable query,
int page, int pageSize, out int count)
{
int skip = (int)((page - 1) * pageSize);
dynamic dynamicQuery = query;
count = Queryable.Count(dynamicQuery);
return Queryable.Take(Queryable.Skip(dynamicQuery, skip), pageSize);
}
The dynamic bit of the C# compiler will take care of working out T for you at execution time.
In general though, I'd encourage you to just try to use the generic form everywhere instead - it's likely to be significantly simpler.