我试图做以下事情
public IList<Category> GetMainCategories()
{
return _context.Category
.Where(x => x.ParentCategory == null)
.OrderBy(x => x.SortOrder)
.ToList();
}
但是,无论我尝试什么,即使我可以在集合中看到所有 ParentCategory 都为空,它也不会返回任何结果?我读过 EF 有这样的空值问题并且也尝试过
.Where(x => x.ParentCategory.Equals(null))
和
.Where(x => Equals(x.ParentCategory.Id, null))
.Where(x => Equals(x.ParentCategory, null))
但还是一样的结果?我迷路了?我怎么检查一个对象是否为空?当我在 VS2010 中检查它时,是否清楚地说明了它的空值?
更新
我可以让它工作,但它的效率非常低!!!必须能够在查询中执行此操作,否则我对 EF 感到非常震惊!任何帮助非常感谢?
public IList<Category> GetMainCategories()
{
var cats = _context.Category
.OrderBy(x => x.SortOrder)
.ToList()
.Where(cat => cat.ParentCategory == null)
.ToList();
return cats;
}