2016-11-11 3 views
0

Это может быть дубликат, но ничего, что я нашел до сих пор, не разрешил эту проблему для меня.Найти, где nullable long == null в Entity Framework 6

Я пытаюсь сделать простой метод Linq

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

CreatorUserId является обнуляемым долго. В моей базе данных я вижу не менее 10 объектов с CreatorUserId = NULL, но этот вызов возвращает 0 объектов.

Я использую Ef6, в котором я думал, что все такие пустые вопросы были зафиксированы

Edit - 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; } 

} 

Edit 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 прочитать sql, который создает EF, чтобы увидеть, где не все соответствующий вашему ожидаемому sql. –

ответ

0

Попробуйте

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

Если это еще zer o, то либо MyObjects не содержит данных, либо CreatorUserId всегда имеет значение

+0

, к сожалению, все еще не работает – pflous

Смежные вопросы