Lambda Expression for Many to Many关系

时间:2014-11-01 12:27:14

标签: c# .net entity-framework many-to-many code-first

基于以下数据模型,我想编写一个“方法语法”lambda查询,它为特定RoleGroupMaps(在CMRoles表中)和{{1}提供了CMRole的集合。 (在UIResources表中)。

enter image description here

我看了thisthis,但无法得到我需要的东西。

1 个答案:

答案 0 :(得分:0)

假设urId是特定UIResource的ID,而listOfCMRoleIds是指定CMRole的列表

context.UIResource.Where(x => x.ID == urId)
    .Join(context.UIResourceGroupMaps,
        x => x.ID, x => x.UIResourceID,
        (x, y) => y)
    .Join(context.UIResourceGroups,
        x => x.UIResourceGroupID, x => x.ID,
        (x, y) => y)
    .Join(context.RoleGroupMaps.Join(context.CMRoles.Where(x => listOfCMRolesIds.Contains(x.ID)),
                                   x => x.CMRoleID, x => x.ID,
                                   (x, y) => x),
        x => x.ID, x => x.UIResourceGroupID,
        (x, y) => y);