大家好我有这样的模特:
public partial class Path
{
public Path()
{
this.Sensors = new HashSet<Sensor>();
}
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string StartStationId { get; set; }
public string EndStationId { get; set; }
public int LineId { get; set; }
public string Order { get; set; }
public virtual Line Line { get; set; }
public virtual ICollection<Sensor> Sensors { get; set; }
}
我尝试通过以下代码对此实体的列表进行排序:
List<Path> lstPath = _dbcontext.Paths.Where(i=>i.LineId==lineNumber).OrderByDescending(i => i.Order).ToList();
顺便说一下,我把它改成这段代码:
List<Path> lstPath = _dbcontext.Paths.Where(i=>i.LineId==lineNumber).ToList();
lstPath = lstPath.OrderByDescending(i => i.Order).ToList();
但它没有根据订单栏排序列表!!!为什么?
祝你好运
答案 0 :(得分:2)
由于您将数字存储为字符串,因此您可能按字母顺序排序而不是数字排序,例如:
1
10
11
2
3
...
正确的做法是更改模型,以便Order
是数字类型,因为:
编辑:我删除了之前的建议,将Order
属性转换为Integer
lambda表达式中的OrderByDescending
,但实体框架无法执行该操作针对数据库,因此需要在内存中对数据进行排序的开销。