Comparar tipos anulables en Linq a Sql

Tengo una entidad de Categoría que tiene un campo Nullable ParentId. Cuando el siguiente método se está ejecutando y el categoryId es nulo, el resultado parece nulo, sin embargo, hay categorías que tienen un valor ParentId nulo.

¿Cuál es el problema aquí, qué me estoy perdiendo?

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

    return subCategories;
}

or cierto, cuando cambio la condición a (c.ParentId == null), el resultado parece normal.

Respuestas a la pregunta(7)

Su respuesta a la pregunta