2016-11-11 64 views
0

這可能是重複的,但是我迄今爲止沒有發現爲我解決過這個問題。在實體框架6中找到可空的long == null

我試圖做一個簡單的LINQ方法

List<MyObject> unusedObject = _context.MyObjects.Where(o => o.CreatorUserId == null).ToList(); 

CreatorUserId是一個可空長。 在我的數據庫中,我看到至少有10個CreatorUserId = NULL的對象,但是這個調用返回0個對象。

我使用EF6中,我認爲所有這些空問題已修復

編輯 - myObject的

[Table("MyObjects")] 
public partial class MyObject 
{ 
    public MyObject() 
    { 
    } 

    [Key] 
    public long MyObjectId { get; set; } 

    public long? CreatorUserId { get; set; } 

    public virtual User CreatorUser { get; set; } 

} 

編輯2 -trace日誌

SELECT 
    CAST(NULL AS bigint) AS [C1], 
    CAST(NULL AS bigint) AS [C2] 
    FROM (SELECT 1 AS X) AS [SingleRowTable1] 
    WHERE 1 = 0 
+0

如果嘗試o.CreatorUserId.Equals(null),它是否正常工作? – mybirthname

+0

請顯示'MyObjects' –

+1

請參閱:http://stackoverflow.com/questions/19299038/using-context-database-log-in-mvc-web-app閱讀EF正在創建的SQL查看事物不是匹配你的預期的SQL。 –

回答

0

嘗試

List<MyObject> unusedObject = _context.MyObjects.Where(o => o.CreatorUserId.HasValue == false).ToList(); 

如果它仍然是zer o結果然後或者MyObjects不包含數據或者CreatorUserId總是具有值

+0

不幸仍然不起作用 – pflous