我正在使用Entity Framework 6数据库第一种方法。
我有三张桌子:
1.SystemRoles
2.MasterAppMenu
3.EmployeeRoleMenuMappings
SystemRole可以有多个MasterAppMenu,因此这是一对多的关系。
我想这样做。
PictureCallback jpegCallback
我想过滤MasterAppMenu表中具有ParentMenuId null的SystemRoles的记录。 SystemRoles具有Icollection对象EmployeeRoleMenuMappings,它具有此MasterAppMenu属性。
请告诉我如何实现这一点,我知道它可以在视图方面完成,但我只想在控制器端进行此操作
答案 0 :(得分:0)
如果您需要所有具有任何null MasterAppMenu ParentMenuIds的EmployeeRoleMenuMappings:
var roleMenuMappings = entities.EmployeeRoleMenuMappings
.Where(m => m.MasterAppMenu.ParentMenuId == null);
您也可以从SystemRoles级别执行此操作:
var systemRolesWithMenuMappings = entities.SystemRoles
.Where(x => x.EmployeeRoleMenuMappings.Any(m => m.MasterAppMenu.ParentMenuId == null);
或MasterAppMenus级别:
var roleMenuMappings = entities.MasterAppMenu.Where(w => w.ParentMenuId == null);
基本上,您使用Where()来过滤记录。在Where()中使用Any(),因为它返回谓词或布尔值。
这些查询仅显示具有空值的项目。如果您只想要DONT具有空值的项目,只需将其更改为代码中的!= null
。