gpt4 book ai didi

linq - RavenDB,LINQ,从字符串 [] 中选择,其中数组不包含给定的字符串

转载 作者:行者123 更新时间:2023-12-01 01:16:13 25 4
gpt4 key购买 nike

给定一个非常简单的 string[],我尝试使用 RavenDB 在简单的 LINQ 语法中完成以下操作。

public class Item {
public string[] Tags { get; set; }
}
var list = new List<Item> {
new Item { Tags = new string[] { "one", "two", "three" } },
new Item { Tags = new string[] { "one", "two" } },
new Item { Tags = new string[] { "one" } }
};

然后我可以很容易地查询这个,像这样;

var items = session.Query<Item>().Search( n => n.Tags, "one" ).Take(3).ToList();

这让我可以轻松获得所有在我想要的 string[] 中带有标签的项目,但我想做相反的事情(显然,对于我的用例来说,场景很多更复杂,我正在为这个例子压缩它)。

我想编写一个可与​​ Raven 一起使用的 LINQ 查询,它将为我提供所有具有给定标签的对象。就像“反向”搜索。

Contains() 已从 RavenDB 中删除,因此我不能对其使用反向 bool 值。直到现在,我只需要做一个查询,然后对结果使用另一个 LINQ 命令,我觉得这是非常低效的。有谁知道如何做到这一点?

我也在 RavenDB Google Groups 邮件列表上发布了这个。

最佳答案

Session.Query<Item>()
.Where(x => !x.Tags.Any(tag => tag == "one"))
.ToList();

关于linq - RavenDB,LINQ,从字符串 [] 中选择,其中数组不包含给定的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9470544/

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