ASP.NET实体框架按顺序排序,然后按不工作排序
我有一行代码:ASP.NET实体框架按顺序排序,然后按不工作排序,asp.net,entity-framework,Asp.net,Entity Framework,我有一行代码: var inventory = dbInventory.Data .SqlQuery( sql ) .OrderBy( m => m.isSold ) .ThenBy( m => m.lotNumber ) .ToList(); 我在我的网站上写了4个页面的代码,4个页面中的3个页面的顺序是正确的,第4个页面的顺序是正确的,他们根本不想按顺序去做。对于一个不工作的,所有的isSold都是false,它们都有一个lotNumber,但它
var inventory = dbInventory.Data
.SqlQuery( sql )
.OrderBy( m => m.isSold )
.ThenBy( m => m.lotNumber )
.ToList();
我在我的网站上写了4个页面的代码,4个页面中的3个页面的顺序是正确的,第4个页面的顺序是正确的,他们根本不想按顺序去做。对于一个不工作的,所有的isSold都是false,它们都有一个lotNumber,但它没有按顺序返回lotNumber
请帮忙。这解决了我的问题
var inventory = dbInventory.Data.SqlQuery(sql).OrderBy(m => m.isSold).ThenBy(m => int.Parse(m.lotNumber)).ToList();
如果您还包括模型类的定义,这将有所帮助。我的第一个想法是,您尝试按数字(lotNumber)排序,但它们实际上是字符串,因此.NET将按字符串排序,而不是按数字排序(即10排在2之前)
SqlQuery
返回IEnumerable
,因此,查询的排序部分是普通的LINQ to Objects(与EF无关)。lotNumber是一个字符串公共字符串lotNumber{get;set;},而isSold是boolpublic bool isSold{get;set;}
您能否发布返回结果的顺序,并解释您期望它们如何返回?我只是想确定,如果“lotNumber”是一个字符串,您不会期望“1,2,3,10,11,12”,因为作为一个字符串,这组数字将被排序为“1,10,11,12,2,3”