Linq Query Null检查返回bool错误

时间:2010-11-05 17:49:48

标签: c# linq

我有以下代码:

  var qry = from sv in Context.DocStore_SearchValues
            where sv.Category == category
            select sv;
  return qry.FirstOrDefault() != null;

我收到此消息:

  

无法创建常量值   类型   'SSS.Model.Suburban.DocStore_Category'。   只有原始类型('如Int32,   支持String和Guid')   这个背景。

如何检查null?我尝试了一个字符串,我得到了同样的信息:

return string.IsNullOrEmpty(qry.FirstOrDefault()。ToString());

有什么建议吗?

谢谢!

Eroc

3 个答案:

答案 0 :(得分:3)

您不能在where子句中使用非基本类型。

将其更改为

where sv.Category.Name == someString

答案 1 :(得分:0)

如何使用为Category类实现的IEquatable接口,以便在对象本身内部以非基本类型封装您在查询中尝试执行的操作? 所以它看起来像这样:

 var qry = from sv in Context.DocStore_SearchValues 
        where sv.Category.Equals(yourCategory) == true
        select sv; 


 return qry.Any(); 

然后,您将使用部分文件类来扩展Category类以实现比较逻辑。

答案 2 :(得分:0)

你通常想做类似where.Id == id而不是比较字符串的事情,imo