【问题标题】:Building a dynamic LINQ query构建动态 LINQ 查询
【发布时间】:2011-03-16 00:02:07
【问题描述】:

我有一个列表框,如果城镇用户可以从列表中选择,我希望能够基于列表中的选定项目构建 LINQ 查询,例如

Dim ddlTowns As ListBox = CType(Filter_Accommodation1.FindControl("ddlTowns"), ListBox)
        If Not ddlTowns Is Nothing Then
            For Each Item In ddlTowns.Items
                If Item.Selected Then
                    '// Build query
                End If
            Next
        End If

我研究了 LinqKit,因为它似乎能够满足我的需求,但经过数小时的尝试后我无法取得任何进展。我在 VB 中找不到任何有意义或可用的东西。

【问题讨论】:

    标签: vb.net linq linq-to-objects custom-linq-providers


    【解决方案1】:

    刚刚有一个 Eureka 时刻,而不是使用谓词我想出了这个......

    Private Function Filter_Accommomdation_QueryBuilder() As IEnumerable
    
                Dim ddlTowns As ListBox = CType(Filter_Accommodation1.FindControl("ddlTowns"), ListBox)
                Dim myList As New List(Of String)
                If Not ddlTowns Is Nothing Then
                    For Each Item In ddlTowns.Items
                        If Item.Selected Then
                            myList.Add(Item.value)
                        End If
                    Next
                End If
    
                Dim Filter_Query = _
                           From c In InitialQuery _
                           Where myList.ToArray.Contains(c.MyData.element("townvillage").value) _
                           Select c
                Return Filter_Query
    
    
            End Function
    

    作为说明,我使用 c.MyData 作为 InitialQuery 的性质需要许多结构化字段(查询从各种表中重复使用,这些表由于设计不佳而不太一致)。

    【讨论】:

      【解决方案2】:

      查看这个问题 - 包含一些有用的 VB 示例:Using PredicateBuilder with VB.NET

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多