不能使用动态linq检查同一属性两次
本文关键字:属性 两次 动态 linq 检查 不能 | 更新日期: 2023-09-27 18:09:35
我正在构建一个MVC应用程序,将不得不建立动态的linq查询到服务器,我正面临着一些困惑我。
到目前为止,我能做一个这样的查询:
var objQry = from o in m_DB.OBJECTS.Where(whereConditions)
select c;
if(!objQry.Any())
{
return null;
}
这个很好。"whereConditions"变量是之前构建的字符串。下面是一个有效查询字符串的示例:
OBJ_NAME == '"Sword'" and OBJ_OWNER == '"Stan'"
这将返回任何名为"Stan"拥有的"Sword"的对象。但是,奇怪的是,如果我使用两次相同的参数创建查询字符串,就像这样:
OBJ_COLOR == '"Blue'" and OBJ_COLOR == '"Red'"
即使我可以证明我的数据库确实有单个"蓝色"项目和单个"红色"项目,这个字符串将返回null。有人能帮我吗?
如果我理解正确,您希望返回所有颜色为红色或蓝色的项目。您当前的查询返回项目,其中项目的OBJ_COLOR
是"红色"和"蓝色"。这不会返回任何东西,因为它是一个矛盾-它不可能两者都是。
我相信你想用OR
操作符来代替:
"OBJ_COLOR == '"Blue'" OR OBJ_COLOR == '"Red'""