diff --git a/ZR.Repository/System/SysMenuRepository.cs b/ZR.Repository/System/SysMenuRepository.cs index cb03a0f0..6becc3b6 100644 --- a/ZR.Repository/System/SysMenuRepository.cs +++ b/ZR.Repository/System/SysMenuRepository.cs @@ -107,12 +107,13 @@ namespace ZR.Repository.System public List SelectMenuTreeByRoleIds(List roleIds) { var menuTypes = new string[] { "M", "C" }; - return Context.Queryable((menu, roleMenu) => new JoinQueryInfos( - JoinType.Left, menu.menuId == roleMenu.Menu_id - )) - .Where((menu, roleMenu) => roleIds.Contains(roleMenu.Role_id) && menuTypes.Contains(menu.menuType) && menu.status == "0") - .OrderBy((menu, roleMenu) => new { menu.parentId, menu.orderNum }) - .Select((menu, roleMenu) => menu).ToList(); + return Context.Queryable() + .Where((menu) => + menuTypes.Contains(menu.menuType) + && menu.status == "0" + && SqlFunc.Subqueryable().Where( s => roleIds.Contains(s.Role_id) && s.Menu_id == menu.menuId).Any()) + .OrderBy((menu) => new { menu.parentId, menu.orderNum }) + .Select((menu) => menu).ToList(); } #endregion