BreezeJs / EntityFramework Order By null /空字符串处理

时间:2013-02-06 15:11:14

标签: sql-server entity-framework asp.net-web-api breeze

我有一个应用程序利用BreezeJs查询由EntityFramework和SQL商店支持的标准WebApi控制器。当我使用order by子句时,我希望NULL和空字符串值总是最后排序(对于BOTH升序和降序)。

在SQL甚至EF服务器端,这不是一项艰巨的任务。但是,我无法找到BreezeJs的文档,它显示了如何实现这一目标。

理想的解决方案是修改我的EF上下文的一些方法,因此这是在查询命中数据库之前检测到任何Order By时的默认行为。如果做不到这一点,也许我在Breeze中错过了一种方法来指定结果中如何处理空值。

最糟糕的情况是,我需要在客户端编写两个单独的查询并合并结果,一个用于with,一个没有指定列中的值。

建议?

1 个答案:

答案 0 :(得分:1)

这是一个有趣的问题。

Breeze目前有一个名为 LocalQueryComparisonOptions 的类,可用于控制客户端排序是否区分大小写以及字符串比较是否应符合SQL92。这里的想法是,该类应该用于匹配您选择的任何服务器实现所使用的任何排序规则。

听起来你想要的是也可以选择完全控制查询的本地排序,可能是通过提供你自己的排序功能。如果是这种情况,请将其添加到微风User Voice并投票支持。这似乎非常合理,如果获得足够的票数,我认为将它添加到产品中是有意义的。

请注意,您仍需要确保EF(或您正在使用的任何后端)遵守这些相同的排序规则。

另外,出于好奇,你怎么让EF总是以这种方式命令空?