2008年02月26日

C#3.0:LINQ 複合キーで結合する

   このエントリーをはてなブックマークに追加 Clip to Evernote
inner joinを実現するLINQのクエリ式は、

var query =
from a in db.TableA
join b in db.TableB on a.ID equals b.ID
select new { ... }


と書けるが、比較するカラムが複数ある場合は、どうやるんだろうか?
無理なのかなと思って調べていたら、書き方がわかった。

var query =
from a in db.TableA
join b in db.TableB on
new { a.ID, a.Name } equals
new { b.ID, b.Name }
select new { ... }


と書けるようだ。へーなるほどね。
こんなところにも、匿名クラスが使えるんだ。


この記事へのコメント
なるほどー
この匿名クラスの使い方はタプルっぽいですね。
Posted by かるあ at 2008年02月27日 00:50
かるあさん
確かにタプルですね。
この使い方は、純粋なインスタンスの生成ではないですし、かなり特殊な匿名クラスですよね。



Posted by Gushwell at 2008年02月27日 20:57
 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/51420180