2010-11-24 74 views
1

如何將linq查詢(或如下所示的表達式)翻譯爲可讀的字符串?用於調試目的。如何將linq查詢翻譯爲可讀的字符串

Expression<Func<User, bool>> query 

編輯

由於這是很難理解:我想從表達的字符串。因此表達式的示例聲明。

Expression<Func<User, bool>> query2 = 
    u => u.FirstName.StartsWith("J") && u.LastName == "Gauffin"; 

應該打印類似「名字首字母'J'和姓氏等於'高弗'的東西。

+1

這只是一個聲明,因此,有沒有查詢,那麼你想「翻譯」成一個人類可讀的字符串? – 2010-11-24 17:30:26

+0

有一些想象力。對於你沒有它的人:更新的問題。 – jgauffin 2010-11-24 18:52:16

回答

5

提示: 如果你使用LINQ to SQL或實體框架,你可以使用toString()方法的IQueryable對象上得到的SQL查詢中查詢:

query2.ToString()給出這樣的:

SELECT * FROM Table1 WHERE FirstName LIKE 'J%' AND LastName="Gauffin" 
1

查看VS樣本文件夾中的LINQ Expression Visualizer。

或者在LINQ to SQL中,你可以使用DataContext.Log

實體框架中看到它,你投的LINQ查詢到的ObjectQuery並調用ToTraceString