【问题标题】:Lambda Expression for Many to Many relationship多对多关系的 Lambda 表达式
【发布时间】:2014-11-01 12:27:13
【问题描述】:

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

我读过thisthis 但无法得到我需要的东西。

【问题讨论】:

  • 感谢@GrantWinney 编辑我的帖子。我最终从 UIResource 中找到 UIResourceGroup 并且可以获得用户角色(CMRoles 列表),但我不能更进一步。我想我可以和几个 if foreach 一起做,但我不想那样做。

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


【解决方案1】:

假设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);

【讨论】:

  • 感谢@HPT,如果我想在单个 lambda 查询中完成所有这些操作如何。我的意思是我有一个特定的 UIResource 和一个 CMRoles 列表作为条件,并希望 RoleGroupMaps 作为查询的结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-02
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多