我有一个轻微的查询来从我的数据库中获取一些值。
如果我想按字母顺序排序值,则查询如下所示:
var query = EntityQuery.from("Words")
.orderBy("Text");
问题是我想先按长度排序返回的值,然后按字母顺序排序。
例如,这组结果按字母顺序排序:
a
ab
b
bb
如何按照这样订购:
a
b
ab
bb
...
我知道我可以编写一个函数来按照我想从服务器返回的方式对数据进行排序,但是我想知道是否可以更改查询,以便像上面所描述的那样对数据进行排序查询?
答案 0 :(得分:0)
您可以通过在将数据发送回客户端之前在服务器上添加其他过滤器步骤来实现此目的。
[HttpGet]
public IQueryable<Word> Words() {
return ContextProvider.Context.Words.ToList().OrderBy(customOrderByImpl;
}
这可能低于性能,因为您的示例我不认为您可以利用任何数据库排序(至少通过EF)。这就是在将结果排序到服务器上的内存之前调用ToList的原因。
希望这是有道理的。