Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET实体框架按顺序排序,然后按不工作排序_Asp.net_Entity Framework - Fatal编程技术网

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是bool
public bool isSold{get;set;}
您能否发布返回结果的顺序,并解释您期望它们如何返回?我只是想确定,如果“lotNumber”是一个字符串,您不会期望“1,2,3,10,11,12”,因为作为一个字符串,这组数字将被排序为“1,10,11,12,2,3”