使用linq to sql查找常用数据

时间:2012-11-29 03:01:25

标签: c# linq

我正在使用linq to sql从我的mvc项目中的IQueryable对象中提取数据。在这种情况下,我试图找到用户有共同点的专辑。谢谢你的帮助。

Albums.Where(x=>x.userid == _userid && x.userid == _otheruserid);
//This will pull all the respected albums from each user. 
//I just would like to pull the albums they have in common

1 个答案:

答案 0 :(得分:3)

您可以使用Intersect。很简单:

Albums.Where(x=>x.userid ==_userid) 
.Intersect(Albums.Where(x=>x.userid== _otheruserid));

编辑:
对于您提供的代码,您希望使用特定字段进行匹配,因为您无法为一个相册分配两个不同的用户。如果你想根据名字找到常见的专辑,你可以尝试使用它:

 Albums.Where(x=>x.userid ==_userid).Select(x=>x.Name) 
    .Intersect(Albums.Where(x=>x.userid== _otheruserid).Select(x=>x.Name)); 

但正如@EvilPenguin所提到的,你最好为你的桌子创造一个更好的结构。