Entity Framework ile string kolon adina göre siralama yapmak için öncelikle static bir sinif olusturulmalidir. 

public static class Quaryble

    {

        public static IOrderedQueryable<TSource> OrderBy<TSource>(

       this IEnumerable<TSource> query, string propertyName)

        {

            var entityType = typeof(TSource);

            var propertyInfo = entityType.GetProperty(propertyName);

            ParameterExpression arg = Expression.Parameter(entityType, "x");

            MemberExpression property = Expression.Property(arg, propertyName);

            var selector = Expression.Lambda(property, new ParameterExpression[] { arg });

            var enumarableType = typeof(System.Linq.Queryable);

            var method = enumarableType.GetMethods()

                 .Where(m => m.Name == "OrderBy" && m.IsGenericMethodDefinition)

                 .Where(m =>

                 {

                     var parameters = m.GetParameters().ToList();

                     return parameters.Count == 2;

                 }).Single();

            MethodInfo genericMethod = method

                 .MakeGenericMethod(entityType, propertyInfo.PropertyType);

            var newQuery = (IOrderedQueryable<TSource>)genericMethod

                 .Invoke(genericMethod, new object[] { query, selector });

            return newQuery;

        }

 

        public static IOrderedQueryable<TSource> OrderByDescending<TSource>(

       this IEnumerable<TSource> query, string propertyName)

        {

            var entityType = typeof(TSource);

            var propertyInfo = entityType.GetProperty(propertyName);

            ParameterExpression arg = Expression.Parameter(entityType, "x");

            MemberExpression property = Expression.Property(arg, propertyName);

            var selector = Expression.Lambda(property, new ParameterExpression[] { arg });

            var enumarableType = typeof(System.Linq.Queryable);

            var method = enumarableType.GetMethods()

                 .Where(m => m.Name == "OrderByDescending" && m.IsGenericMethodDefinition)

                 .Where(m =>

                 {

                     var parameters = m.GetParameters().ToList();

                     return parameters.Count == 2;

                 }).Single();

            MethodInfo genericMethod = method

                 .MakeGenericMethod(entityType, propertyInfo.PropertyType);

 

            var newQuery = (IOrderedQueryable<TSource>)genericMethod

                 .Invoke(genericMethod, new object[] { query, selector });

            return newQuery;

        }

    }


Kolon adina göre artik çekebilirsiniz.

Gridview1.DataSource = entities.*tabloadi*.OrderBy(“Kolonun Adi”).ToList();