2011-05-11 51 views
1

如何使用groupBy與F#linq-to-sql?

<@ linq.IncTXes 
|> Microsoft.FSharp.Linq.Query.groupBy (fun intx -> intx.RecTime, intx.ID, intx.str) @> 
|> Microsoft.FSharp.Linq.Query.query 
|> Seq.map  ^-^ fun sq -> 

但F#到LINQ無法理解/翻譯3種元素的類型元組......我該怎麼辦?

回答

2

元組不能轉換爲SQL。你可以做的是在F#中進行分組,而不是在「SQL」(F#引用)中進行,如下所示。

<@ linq.IncTXes @> 
|> Microsoft.FSharp.Linq.Query.query 
|> Seq.groupBy (fun intx -> (intx.RecTime, intx.ID, intx.str)) 
|> Seq.map  ^-^ fun sq -> 
+0

是的...這是我的問題完全是關於。但是那個代碼當然不是我的麻煩的解決方案。也許答案是「你無法做到」就是答案。但這對我來說很難過。 – Cynede 2011-05-11 07:35:15

+1

在Linq to SQL中,只能使用表示數據庫中的表的「類型」或SQL中支持的基本數據類型(如int,string等)。由於Tuple是不屬於這些類別的東西,所以你不能按照你想要的方式使用它 – Ankur 2011-05-11 08:06:52

+0

所以我就不能使用F#linq to sql .. – Cynede 2011-05-11 08:15:02

-1

元組不應該被括號包圍嗎?

<@ linq.IncTXes 
|> Microsoft.FSharp.Linq.Query.groupBy (fun intx -> (intx.RecTime, intx.ID, intx.str)) @> 
|> Microsoft.FSharp.Linq.Query.query 
|> Seq.map  ^-^ fun sq ->