我尝试做以下WHERE子句与空对象使用实体框架v5.0RC
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;
}
请发布EF生成的SQL。是的,EF的查询功能在很大程度上落后于其前身LINQ to SQL。 – usr 2012-07-12 19:12:30
你的模型是什么样的?类别模型? – 2012-07-12 19:16:19
当查询返回没有结果时,我想知道什么“集合”你看到“所有ParentCategory的都是空的”。 – Slauma 2012-07-12 22:10:55