我需要创建一个linq查询,从数据库表中选择某个功能结果为真的数据。
我正在使用linq-to-sql
并且该功能运行良好,我可以编写一个基本查询来获取数据。
我的问题是我有一个内存参数列表,我基本上需要多次运行linq查询(每个参数列表项一次)并聚合结果。
我尝试使用.Any()
作为连接,但linq不喜欢将非数据库结果集与数据库结果集一起使用。
一些示例代码:
Parameter list: // lets call it "l"
{
One,
Two,
Three
}
查询
From w in words where funcWord(l.item) == true select w;
所以我需要一个可以为l中的每个项运行上述查询一次的查询并聚合结果。
感谢任何帮助。
感谢。
答案 0 :(得分:1)
多个from
语句将遍历每个组合,有点像嵌套的foreach
语句:
from item in list
from w in words
where funcWord(item, w.name) == true
select w;
有趣的是,这被转换为SelectMany
语句,类似于Arithmomaniac的回答。
答案 1 :(得分:0)
尝试SelectMany,它汇总了一对多函数的结果,应用于每个成员。
在这种情况下,成员是list
的元素,而一对多函数是您的上述l
- 依赖查询(尽管我将其重写为lambda函数。)
list.SelectMany(l => words.Where(w => funcWord(l.item, w.name)));