Breeze 谓词:column = null 与 column IS NULL

Breeze predicate: column = null vs column IS NULL

breeze predicate 可以测试空列吗? SQL 以两种方式测试 null:columnname = nullcolumnname 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.