2011-03-25 52 views
1

我有一個使用LOG()函數的SQL視圖。我試圖用LINQ查詢替換這個視圖,但找不到任何引用re:這個函數。我非常感謝一個例子,或者指點我一個好的LINQ參考站點,這將有助於。如何在LINQ中執行SQL Log()函數?

在此先感謝。

回答

1
int[] names = { 1,2,3 }; 

var namesList = names.ToList(); // to get enumerable query 

(from e in namesList select Math.Log(e)).Dump(); 

至於學習LINQ的,我強烈建議LinqPad工具,其中有一個免費版本和許多嵌入式樣品和練習。

+0

謝謝Nathan。我試過Math.Log(),但我收到此錯誤。 LINQ to Entities無法識別方法'Double Log(Double)'方法,並且此方法無法轉換爲存儲表達式 – karman 2011-03-27 20:54:01

+0

我明白了。原因是因爲LOG沒有確切的翻譯作爲商店查詢。您可以通過首先加載查詢來強制執行評估,然後應用。使用.ToList登錄查詢本身我修改了我的答案以反映此情況。請讓我知道這可不可以幫你。當然,toList會帶來完整的數據集,所以如果結果很大,這不是很好的解決方法。 – 2011-03-28 17:50:40

+0

使用'AsEnumerable()'而不是'ToList()' – BrokenGlass 2011-03-28 18:20:20