我现在有一张表,上面每一行是一个ID,和ID的一种分类:Tag,每个ID可能会有很多个Tag,所以可能出现在很多行。现在希望查询到既拥有 Tag1,Tag2,Tag3...TagN的favorID集合,如果是只有两个ID的话,用一次inner join就可以了。就像:
from row1 in table
from row2 in talbe
where row1.Tag == Tag1 && row2.Tag == Tag2 && row1.ID == row2.ID
select row;以上是两个tag的情况,如果是三个tag得这样:
from row1 in table
from row2 in talbe
from row3 in talbe
where row1.Tag == Tag1 && row2.Tag == Tag2 && row3.Tag == Tag3 && row1.ID == row2.ID && row2.ID == row3.ID
select row;所以tag的数目是变量,linq语句也会不同,如果是一般的数据库查询语句也要做到动态生成才行,而用linq好像要用到动态查询,但不知道如何实现,请高手指教~~