0

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
4

1 に答える 1

3

Intersectを使用できます。とても簡単:

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

編集:
提供したコードについては、特定のフィールドを使用して照合する必要があります。これは、1 つのアルバムに 2 人の異なるユーザーが割り当てられていることはできないためです。名前に基づいて一般的なアルバムを見つけたい場合は、これを使用できます。

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

ただし、@EvilPenguin が述べたように、テーブルの構造を改善したほうがよいでしょう。

于 2012-11-29T03:05:56.947 に答える