我有一個linq查詢,我想要獲取查詢語法。獲取LINQ查詢的查詢語法
var q = customers.Where(x => x.name == "smith");
有沒有像IQueryable.ToQuerySyntaxString()?這將返回這樣的東西:
cust custnamename ==「smith」;
我在問,因爲我可以使用方法語法來構造我的查詢,但希望看到查詢語法等價於幫助我學習如何在替代形式中編寫。
我有一個linq查詢,我想要獲取查詢語法。獲取LINQ查詢的查詢語法
var q = customers.Where(x => x.name == "smith");
有沒有像IQueryable.ToQuerySyntaxString()?這將返回這樣的東西:
cust custnamename ==「smith」;
我在問,因爲我可以使用方法語法來構造我的查詢,但希望看到查詢語法等價於幫助我學習如何在替代形式中編寫。
它實際上是另一種方式。當你使用第二種語法(from x in y where w
)時,它實際上被編譯成第一個(y.Where(x => w)
)。
我相信你可以寫一些東西來使用表達式樹生成第二個版本,但是我沒有意識到框架中的任何東西會自動爲你做。
不是我期待的那種安撫。好吧。 – Jacob 2010-01-14 00:13:28
嘗試從relinq.codeplex.com
new QueryParser().GetParsedQuery (q.Expression).ToString()
重新LINQ將只是給你。
Resharper經常會允許你這樣做。它可以建議將for/foreach轉換爲LINQ以及將LINQ轉換回循環(對於後者,請參閱http://www.jetbrains.com/resharper/whatsnew/whatsnew_60.html#LINQtoLoops),以及查詢語法中的LINQ方法鏈。
你的問題很不清楚。你已經提供了一些代碼,但沒有真正說明你想要做什麼。 – 2010-01-12 20:03:58
希望現在更清楚。 – Jacob 2010-01-12 20:50:43