如何通过 LINQ to Sql 结果上的数据对分组进行 lambda?

Posted

技术标签:

【中文标题】如何通过 LINQ to Sql 结果上的数据对分组进行 lambda?【英文标题】:How to lambda the group by data on a LINQ to Sql results? 【发布时间】:2010-10-01 06:58:28 【问题描述】:

    我是这样从数据库中获取数据的。

     Dim query = From t1 In TBL1 _
                 Join t2 In TBL2 On t1.ID Equals t2.ID _
                 Join t3 In TBL3 On t1.ID Equals t3.ID _
                 Group Join t4 In t1 _
                       On t1.ID Equals t4.ID _
                       Into t4_Grp = Group _
                 Select t1, t2, t3, t4_Grp
    

    当用户执行搜索时,我可以像这样过滤查询结果。

    query = query.Where(Function(o) o.t1.ID = lngID)
    

    以上一切正常。直到我想 lambda t4_Grp。我不知道如何在 t4_Grp 上做一个 lambda 表达式?

【问题讨论】:

您能否澄清您的问题,“执行 lambda 表达式”或“lambda the t4_Grp”是什么意思?您是否尝试进行额外的过滤,但在表 t4 而不是 t1 上? 是的,我正在尝试进行额外的过滤;在 t4_Grp 上。 【参考方案1】:

我过去曾用它来做一些权力分组。

private void ProducePivotAnalytic <T, K>(IEnumerable<T> colletion, Func<T, K> pivot)

    var grouped =
        from n in colletion
            group n by pivot(n) into g
            select new  theKey = g.Key, theValue = g ;
    // do some stuff with your grouped collection.



ProducePivotAnalytic<List<DateTime>, DayOfWeek>(
        myDates,
            (x) => (x.DayOfWeek) );

【讨论】:

以上是关于如何通过 LINQ to Sql 结果上的数据对分组进行 lambda?的主要内容,如果未能解决你的问题,请参考以下文章

如何关联不同 dbml 图上的 Linq-To-Sql 对象?

如何在LINQ-To-SQL中排除Contex.InsertOnSubmit()上的用户定义字段?

使用asp.net mvc + linq to sql如何循环输入结果集

如何使用 LINQ to SQL 连接到 SQL Server?

如何将相同的 var 类型变量分配给不同的 linq to sql 结果集?

使用 LINQ to SQL 分页搜索结果