Confronta i tipi nullable in Linq a Sql

Ho un’ quadro di categoria che ha un campo ParentIn Nullable. Quando il metodo di seguito è in esecuzione e la categoria ID è nullo, il risultato sembra nullo, tuttavia esistono categorie che hanno valore ParentId null.

Qual è il problema qui, cosa mi sto perdendo?

public IEnumerable GetSubCategories(long? categoryId) { var subCategories = this.Repository.Categories.Where(c => c.ParentId == categoryId) .ToList().Cast(); return subCategories; } 

A proposito, quando cambio la condizione in (c.ParentId == null), il risultato sembra normale.