我有一个基本的标签搜索系统设置,每个标签都有一个ID为一个类别的字段。一些标签将没有类别。LINQ,选择标题匹配的地方,否则如果对象为空
所以在我的方法中,我只是通过一个字符串来定义列表中的类别。
public IQueryable<Tag> List(string category)
{
//...
}
我想返回没有分类的标签,如果没有传递任何东西。这工作,如果我写这样的查询...
return t from db.Tags
where t.Category == null
select t;
但是后来我需要两个查询(如果其中一个为null,一个如果不是) 我在想,如果我能做到这一切在一个查询简化。
当前查询为...
return t from db.Tags
where t.Category.Name == name
select t;
如果'name'为null,那么它会工作吗?为什么你需要'== null'查询? – 2009-12-24 20:21:56
不,这不起作用。我曾试过这种方式。如果name为null,与将对象等同为null不同,它会尝试获取对象本身的名称,它是一个空对象,并引发错误。 – Ciel 2009-12-24 20:24:19
什么样的错误/异常?只是想知道什么可能是错误的,因为这应该只是工作.. – 2009-12-24 20:25:34