我正在尝试实现这里举例说明的多对多关系查询。
我有一个员工表、一个“区域”表和一个员工外部参照区域表。一个员工可以属于多个区域,一个区域可以有多个员工。从 SQL 的角度来看,这是非常有意义的,我可以整天在 SSMS 中离开连接、内连接,不管这些数据。我无法理解的是如何将正确的 linq 查询附加到正确的屏幕控件,以便能够根据区域选择列表过滤员工列表。WCF RIA 不是我们能够追求的发展方向。
我将以下内容附加到 ResponseZone 表中,参数“Employee”的类型为“Integer”
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
然后我将外部参照实体添加到屏幕并将其绑定到“区域”。它唯一完成的是填充员工和区域的所有组合的选择列表,并且不过滤任何内容。显然我在这里做错了什么,但我正在拔头发试图弄清楚是什么!
我还尝试过在多对多关系、多对多查询和 涉及多个实体的查询中过滤但没有成功。要么我的架构中有一些不同的东西,这些示例无法使用,要么我错过了一些非常明显的东西。