2010-01-12 114 views
3

我有一個linq查詢,我想要獲取查詢語法。獲取LINQ查詢的查詢語法

var q = customers.Where(x => x.name == "smith"); 

有沒有像IQueryable.ToQuerySyntaxString()?這將返回這樣的東西:

cust custnamename ==「smith」;

我在問,因爲我可以使用方法語法來構造我的查詢,但希望看到查詢語法等價於幫助我學習如何在替代形式中編寫。

+2

你的問題很不清楚。你已經提供了一些代碼,但沒有真正說明你想要做什麼。 – 2010-01-12 20:03:58

+0

希望現在更清楚。 – Jacob 2010-01-12 20:50:43

回答

1

它實際上是另一種方式。當你使用第二種語法(from x in y where w)時,它實際上被編譯成第一個(y.Where(x => w))。

我相信你可以寫一些東西來使用表達式樹生成第二個版本,但是我沒有意識到框架中的任何東西會自動爲你做。

+0

不是我期待的那種安撫。好吧。 – Jacob 2010-01-14 00:13:28

0

嘗試從relinq.codeplex.com

new QueryParser().GetParsedQuery (q.Expression).ToString() 

重新LINQ將只是給你。