2009-07-22 23 views
1

これはなぜ機能しますか?linq to SQLクエリーを使用したクエリ

var x = from p in db.People let oCount = p.Orders.Count select p; 

これはありませんか?

var x = from p in db.People let oCount = Count(p) select p; 

private int Count(DataContext.Order o) 
{ 
    return o.Count; 
} 

答えて

4

SQLにLINQはp.Orders.Countを「理解」が、それはそれが何を意味するのか動作するようにあなたの方法で内部を見ることができない - それは限りSQLにLINQが懸念していると何もすることができます。

最初のクエリでは、p.Orders.Countはすべて実行時にプログラムで検査できるexpression treeで表されます。

+1

しかし、それは私が非常に長く紛らわしい探しているクエリを書くつもりであることを意味します。どうもありがとう。 –

+0

適切な改行とインデントが大いに役立ちます。 – tvanfosson

+1

複数のステートメント/クエリに分割するだけでなく(実行が遅延するため、クエリ結果を使用する必要があるまで、データベースにアクセスすることなく複数のステートメントに分割できます)。 – bdukes

関連する問題