如何获取对分组数据的访问权限?

时间:2014-06-11 22:56:36

标签: f# f#-3.0

我有两条记录,我试图加入并分组。我现在正在尝试将数据投影到另一条记录中。问题是我无法弄清楚如何获得对分组属性的访问权限。 这是代码:

第一条记录:

type Product = {
    Id : string;
    Name : string;
    Description : string;
}

第二条记录:

type ProductOption = {
    Id : string;
    ProductId : string;
    SizeId : int;
    Price : decimal;
}

最终记录:

type ProductDetails = {
    Product : Product;
    Options : seq<ProductOption>;
}

这是我的groupBy代码:

let getProductDetails = 
    query{
        for row in productRecords do
        join opt in productOptionRecords on
           (row.Id = opt.ProductId)
        groupBy row.Id into prod
        // here is my problem, this below does not work
        select {
                  Product = prod.Product,
                  Options = prod.ProductOption
               }
     }

我在这里做错了什么。

1 个答案:

答案 0 :(得分:3)

我相信你所寻找的是groupJoin - 运营商。下面的代码编译,并且众所周知,然后它几乎肯定是正确的。;)但是你最好检查一下。我还没有对任何实际数据进行过测试。

query{
    for prod in productRecords do
    groupJoin opt in productOptionRecords on
        (prod.Id = opt.ProductId) into prodopts
    select {
              Product = prod;
              Options = prodopts
           }
 }