SqlProvider:在结果中按存储其他列进行分组时

时间:2017-06-26 20:12:45

标签: f#

假设我有一个包含Column1,Column2和Column3的表。我在Column2的结果中进行分组,并希望有以下返回对象: {Key = Column2,Items = Column3的列表}

我知道如何在C#中执行此操作,但无法在F#中获得类似的结果。这是我到目前为止所得到的:

type sql = SqlDataProvider<Common.DatabaseProviderTypes.MSSQLSERVER, connectionString>
let ctx = sql.GetDataContext()


let res = 
    query{
        for row in ctx.Dbo.Table1 do
            groupBy row.Column2 into g
            select (g.Key, g, g.Count())
    }

但是当我尝试访问g中保存的内容时,它看起来像是空的。

我就是这样做的C#方式:

let res = 
    query{
        for row in ctx.Dbo.Table1 do
            select row
    } 

res.ToArray().GroupBy( fun (x) -> x.Column2 ).Select( fun (x) -> AnonymousObject<_,_,_>(x.Key, x.Select( fun (g) -> g.Column3).ToArray(), x.Count())).ToList() |> printfn "%A"

0 个答案:

没有答案