我最近为 开发了一个处理程序DataTable for MVC,但我遇到了一个问题。出于某种原因,当我对要从 MySql 服务器检索的数据进行排序时,它每次都会给我重复的同一个人。
我想如果这很奇怪,那就是随机的人或每个人,但事实并非如此。我将问题缩小到我的这段代码,但我尝试了几件事,但我不明白为什么。
我做了一个直截了当的sort,它工作得很好。我只能得出结论,这与我的机器有关,因为我不记得在另一台机器上有这个问题。如果有人可以帮助我并理解它为什么这样做,我将不胜感激。
Expression<Func<T, object>> sortExpression = null;
if(lambda.Lambda == null)
{
var param = Expression.Parameter(typeof(T), "item");
sortExpression = Expression.Lambda<Func<T, object>>(
Expression.Property(param, lambda.ColumnName), param);
//Expression.Convert(Expression.Property(param, lambda.ColumnName), typeof(object)), param);
}
if(order == null) {
if(lambda.IsDescending)
{
if (sortExpression != null)
order = results.OrderByDescending(sortExpression.Compile());
else
order = results.OrderByDescending(lambda.Lambda);
}
else
{
if (sortExpression != null)
order = results.OrderBy(sortExpression.Compile());
else
order = results.OrderBy(lambda.Lambda);
}
}
else
{
if (lambda.IsDescending)
{
if (sortExpression != null)
order = order.ThenByDescending(sortExpression.Compile());
else
order = order.ThenByDescending(lambda.Lambda);
}
else
{
if (sortExpression != null)
order = order.ThenBy(sortExpression.Compile());
else
order = order.ThenBy(lambda.Lambda);
}
}
}