在实体框架的 where 子句中使用列表

2024-03-30

我正在尝试通过一对多表检索文档 ID。我想在 where 子句中使用列表来查找与列表中每个元素相关的所有 id。

List<int> docIds = (from d in doc
                      where _tags.Contains(d.Tags)
                      select d.id).ToList<int>();

我知道包含的内容一定是不正确的,但我无法解决。如果我尝试 foreach,我无法弄清楚如何检查文档是否包含所有标签。


如果你想要这一切d.Tags应包含在_tags列表,你可以尝试:

List<int> docIds = (from d in doc
                      where d.Tags.All(t => _tags.Contains(t))
                      select d.id).ToList<int>();

如果你想要那个d.Tags应该包含来自的所有项目_tags你需要:

List<int> docIds = (from d in doc
                      where _tags.All(t => d.Tags.Contains(t))
                      select d.id).ToList<int>();

但我不知道它如何通过 EF 转换为 SQL,所以也许您需要在客户端站点上对其进行评估。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在实体框架的 where 子句中使用列表 的相关文章

随机推荐