Vb.net 从多对多关系筛选查询,不使用';在灯光开关中似乎不可能?

Vb.net 从多对多关系筛选查询,不使用';在灯光开关中似乎不可能?,vb.net,vbscript,visual-studio-lightswitch,lightswitch-2012,Vb.net,Vbscript,Visual Studio Lightswitch,Lightswitch 2012,我正试图实现这个多对多关系查询 我有一个employees表、一个“zone”表和一个Employeexref zone表。一个员工可以属于多个区域,一个区域可以有多个员工。从SQL的角度来看,这非常有意义,我可以整天在SSM中左连接、内部连接、任何连接这些数据的东西。我不明白的是,如何将正确的linq查询附加到正确的屏幕控件,以便能够根据区域选择列表筛选员工列表。WCF RIA不是我们能够追求的发展方向 我将以下内容附加到ResponseZone表,参数“Employee”类型为“Integ

我正试图实现这个多对多关系查询

我有一个employees表、一个“zone”表和一个Employeexref zone表。一个员工可以属于多个区域,一个区域可以有多个员工。从SQL的角度来看,这非常有意义,我可以整天在SSM中左连接、内部连接、任何连接这些数据的东西。我不明白的是,如何将正确的linq查询附加到正确的屏幕控件,以便能够根据区域选择列表筛选员工列表。WCF RIA不是我们能够追求的发展方向

我将以下内容附加到ResponseZone表,参数“Employee”类型为“Integer”

然后,我将外部参照实体添加到屏幕并将其绑定到“区域”。它完成的唯一一件事是填充一个包含所有员工和区域组合的拾取列表,而不过滤任何内容。很明显,我在这里做错了什么,但我正在努力弄清楚到底是什么

我也试过,而且
没有成功。要么我的模式中有一些不同的东西,这些例子无法使用,要么我遗漏了一些非常明显的东西

在employees表“QRYParameters”中添加了一个查询

增加整数的“ZoneID”作为参数

增加

在“搜索员工”屏幕中添加了区域实体(区域列表)

将员工网格Qry参数中的“ZoneID”绑定到区域列表中的“ID”

将响应区域选择列表添加到屏幕

它是有效的

然而,我希望能够选择多个区域,在它的立场上,查询预处理器中的vb返回所有区域来解决这个问题

      Private Sub QRYZone_PreprocessQuery(Employee As System.Nullable(Of Integer), ByRef query As System.Linq.IQueryable(Of LightSwitchApplication.ResponseZones))
        query = From q In query
                Where q.xref_EmployeeZonesCollection.Where(Function(u) u.ResponseZones.Id = Employee).Count() > 0
    End Sub
            If ZoneID.HasValue Then
            query = query.Where(Function(x) x.xref_EmployeeZonesCollection.Any(Function(y) y.ResponseZones.Id = ZoneID))
        Else
            query = From q In query
                    Select q
        End If