2016-08-24 74 views
3

在數據庫中,對於作爲數字的字段可以有NULL。當我通過EF將該錶帶入我的項目,並在where子句中對該列進行空檢查時,它會告訴我信息始終爲真,並且您不能在小數點檢查爲空,因爲它從不等於null。但是,這將在直接sql中有效。如何通過EF檢查數據庫中數值列的空值,這僅僅是EF和數據庫之間的誤解?對數字字段使用Linq對EF過濾器的空值

例子caluse:

&& l.latitude != null && l.longitude != null 

緯度和經度小數時,他們來到EF,但他們可以在數據庫中的NULL,我想篩選那些出

回答

8

的問題是,即使數據庫支持這些列的null,您已將它們映射到非空類型:decimal。我相信這會導致null的值在您的情況下默認爲零,這可能不是您想要的值。

正確的解決方案是修復您的實體使用decimal?,以便null值得到正確支持。

+0

我自己沒有映射它們,EF自動執行。我將檢查數據庫,因爲我將分配EF正在根據數據庫中的列上的可空標記決定要執行的操作。 – user441521