我有以下代码:
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
答案 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