我有一个EF4模型和一个从模型中获取分页项(Anagrafica实体)的方法,类似于(简单):
public List<Anagrafica> Get(string SortExpression, int startRowIndex, int maximumRows)
{
return context.Anagrafiche.Where(/* some filters */)
.OrderBy(SortExpression)
.Skip(startRowIndex)
.Take(maximumRows).ToList();
}
在Asp.Net项目中使用ObjectDataSource进行管理,并将数据绑定到Telerik RadGrid。
问题是,如果我将SortExpression设置为具有空值的字段,由于某种原因,该方法给出的List似乎具有随机顺序。
这是结果的正确“页面”(例如,我可以从sql查询获得相同的前10个元素),但在List内部,订单是随机的。
我不知道为什么。
答案 0 :(得分:0)
我猜问题就在于跳过功能。
我们有两个可查询的列表,它们被连成一个,这两个查询都是自己排序的。如果我们得到没有跳过函数的结果,那么一切都好,但是在使用跳过顺序后会变得破坏。我需要解决这个问题,但现在它仍然像一场噩梦。
我是这样的意思:
IQueryable list 1: 1. ID:1 2.身份证号码:5 3. ID:8
IQueryable list 2: 1.身份证:2 2.身份证号码:3 3. ID:9
CocatList = list1.concat(list2)
如果我们不使用跳过功能,结果是:
但如果我们使用skip,结果就像:
第1页(不跳过,带走): 1. ID:1 2.身份证号码:5 3. ID:8
第2页(跳过,带走): 1.身份证号码:3 2.身份证号码:9 3. ID:5
这一切都是由我跳过引起的。