我是使用LINQ来查询数据库以获取配置文件。它使用“跳过,限制和排序”顺序加载配置文件,但不能一次全部加载。
return (
queryable
.OrderBy(usr => usr.FirstName)
.ThenBy(usr => usr.LastName)
.Skip(skip)
.Take(limit)
.Include(usr => usr.Workplaces)
.ThenInclude(uwp => uwp.Workplace)
.Include(usr => usr.ProfilePicture)
);
现在,我开始遇到一些有关订购的问题。可以说我先跳过0并限制为20。这应该给我20个配置文件,按姓氏和姓氏排序。当人们具有相同的姓氏时,它的行为有些奇怪。可以说是检索到了:
0.firstname: A lastname: a
1.firstname: A lastname: b
...
19.firstname: P lastname: Å
然后,当我跳过20并限制为10时,我得到以下结果:
20.firstname: P lastname: A
21.firstname: Q lastname: A
记录19和20现在位置错误! “ A”位于“Å”之前。我在这里想念什么?我认为姓氏排序不能正常工作,因为应该首先返回记录20,而不是返回记录19。我已经通过使用CultureInfo.CurrentCulture.Name确保正确地将文化设置为瑞典语。我还尝试过将文化与以下建议进行比较:Linq orderby culture (danish, æøå),它只会在运行时崩溃。