gpt4 book ai didi

c# - 无法使用动态 linq 两次检查相同的属性

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:23 26 4
gpt4 key购买 nike

我正在构建一个 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\""

关于c# - 无法使用动态 linq 两次检查相同的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16064327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com