|  |  | 
 
| 連載:[完全版]究極のC#プログラミングChapter17 LINQ to SQL川俣 晶2010/04/14
 |  | 
| 
 | 
17.5 LINQ to SQLとメソッド構文
 リスト17.1は、クエリ式を次のように書き直せば、メソッド構文になる。
| 
 
| var query = db.PointList.Where((n) => n.point >= 80);
 |  | 
 当然ではあるが、このように書き直しても、結果は同じである。同じクエリが送信され、同じ結果になる。クエリ式はメソッド構文の糖衣構文だからである。メソッド構文で書くと、このラムダ式がローカルで実行されないことが直感的にわかりにくいかもしれないが、これも、式ツリー経由でSQL文に翻訳されるわけである。
 ちなみに、このWhereメソッドは、LINQ to Objectで使われたWhereメソッドとは別物のSystem.Linq.QueryableクラスのWhereメソッドである。このメソッドは次のシグネチャを持つ。第2引数の型がExpression型であることから、このメソッドが確かに「式ツリー」を受け取っていることがわかるだろう。
| 
 
| Where<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>)
 |  | 
| System.Linq.QueryableクラスのWhereメソッドのシグネチャ | 
 
 
 
	
		Insider.NET 記事ランキング
		
		
			本日
			月間