Breeze 谓词:column = null 与 column IS NULL
Breeze predicate: column = null vs column IS NULL
breeze predicate 可以测试空列吗? SQL 以两种方式测试 null:columnname = null
和 columnname IS NULL
,它们会生成不同的结果。我有一个 breeze 谓词设置为
new breeze.Predicate("columnname", "==", null)
使用 EF6 拦截器,我能够查看使用的 sql 查询并且谓词被评估为 columnname = null
。如何设置谓词,使生成的 sql 查询为 columnname IS NULL
你读过文档了吗?
http://breeze.github.io/doc-js/api-docs/classes/Predicate.html#method_谓词
例子之一
var p2 = new Predicate("Region", FilterQueryOp.Equals, null);
关于 FilterQueryOp 的更多文档以及您的答案:
http://breeze.github.io/doc-js/api-docs/classes/FilterQueryOp.html#property_Equals
这表明您可以对 null 相等性做 == 处理。
它还表明没有 "IS NULL" 选项,因此要回答您的问题,您不能从 breeze 客户端谓词中执行 "is null"。
但是,您应该注意这是客户端,我相信您需要更多地评估您的服务器端代码,以找出它在哪里处理 breeze 请求并将其转换为 SQL.
breeze predicate 可以测试空列吗? SQL 以两种方式测试 null:columnname = null
和 columnname IS NULL
,它们会生成不同的结果。我有一个 breeze 谓词设置为
new breeze.Predicate("columnname", "==", null)
使用 EF6 拦截器,我能够查看使用的 sql 查询并且谓词被评估为 columnname = null
。如何设置谓词,使生成的 sql 查询为 columnname IS NULL
你读过文档了吗? http://breeze.github.io/doc-js/api-docs/classes/Predicate.html#method_谓词
例子之一
var p2 = new Predicate("Region", FilterQueryOp.Equals, null);
关于 FilterQueryOp 的更多文档以及您的答案: http://breeze.github.io/doc-js/api-docs/classes/FilterQueryOp.html#property_Equals
这表明您可以对 null 相等性做 == 处理。 它还表明没有 "IS NULL" 选项,因此要回答您的问题,您不能从 breeze 客户端谓词中执行 "is null"。
但是,您应该注意这是客户端,我相信您需要更多地评估您的服务器端代码,以找出它在哪里处理 breeze 请求并将其转换为 SQL.