2012-08-07 163 views
-2

這裏的lambda表達式,我想將其轉換爲SQL Server查詢語法。如何將Lambda表達式轉換爲SQL Server查詢語法?

{x => ((True AndAlso x.Name.ToLower().Contains("_")) AndAlso Not(x.IsDeleted))} 

注:lambda表達式等同於Sql服務器的Where子句。 我想將其轉換爲sql語法,然後將其傳遞給sql server存儲過程。 有什麼辦法可以做到這一點?

+1

「真」,「AndAlso」和「不是」都是Visual Basic中的關鍵字,你爲什麼要用C#-4.0標記這個問題? – 2012-08-07 19:25:23

+0

你爲什麼要把它轉換成T-SQL?你正在使用linq-to-sql還是你正在使用t-sql?我建議試着瞭解什麼是需要在SQL服務器(t-sql)中查詢而不是「轉換」的東西。 – 2012-08-07 19:26:50

回答

2

通常,您可以使用LINQ語句返回的IQueryable對象上的ToString方法來查找將在數據庫上執行的確切查詢。但是,在這種情況下,我猜這樣的事情可能會爲WHERE產生:

WHERE CONTAINS(Name, '_') AND NOT IsDeleted 

但是,你有沒有提供,讓我驗證,任何細節。

如果你沒有對全文,那麼下面可能更適用:

WHERE Name like '%_%' AND NOT IsDeleted 
+0

可能要提及'CONTAINS'需要全文搜索。 – 2012-08-08 16:04:32