2016-03-03 156 views
0

可以輕鬆測試空列的謂詞嗎?在兩種方式下SQL測試爲null:columnname = nullcolumnname IS NULL,它們會產生不同的結果。我有一個微風謂詞設置爲Breeze謂詞:column = null vs column IS NULL

new breeze.Predicate("columnname", "==", null) 

使用EF6攔截器,我可以查看使用的SQL查詢和謂詞被評估爲columnname = null。如何設置謂詞,以便生成的sql查詢將爲columnname IS NULL

+0

'columnname = null'是否爲真? – jarlh

+0

@jarlh no。它總是假的 – jpo

+0

謝謝。 (這是一個重要的問題......解釋爲什麼OP會得到不同的結果......) – jarlh

回答

1

您是否閱讀過文檔? 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

這表明,你可以做==罰款空平等。 它還顯示沒有「IS NULL」選項,因此要回答您的問題,不能從breeze客戶端謂詞中「空」。

但是,您應該注意到這是客戶端,我相信您需要更多地評估您的服務器端代碼以找出它處理微風請求的位置並將其轉換爲SQL。

+0

你說得對。我需要將服務器端的列設置爲空值。 – jpo

相關問題