工作中经经常使用到的linq依据传入数据集合查询相应子级数据,整理共享,希望大家都能用得上,代码中doublesArray 为父节点相应ID数据集合,再依据ID数据集合查询所有子级数据。
//获取缓存数据 object obj = Caching.GetCache(CacheKey + UModel.RoleId); if (obj != null)//判读缓存数据是否null { SysFunList = (DataSet)obj; } else { string strSql = "select * from View_SysRoleList where LoginID='" + UModel.LoginId + "' order by [Custom_Displayorder]"; SysFunList = SqlHelper.Query(SqlHelper.LocalSqlServer, strSql.ToString()); Caching.SetCache(CacheKey + UModel.RoleId, SysFunList); } //linq获取数据集内全部父节点数据 var query = (from t in SysFunList.Tables[0].AsEnumerable() where t.Field<int>("Custom_ParentNodeId") == 0 select t); if (query.Count() > 0) { //linq获取数据内全部父节点相应ID var doublesArray = query.Select(one => one.Field<int>("Custom_NodeId")); if (doublesArray.Count() > 0) { //linq 依据ID数据结合获取相应下一级数据 var foos = from tq in SysFunList.Tables[0].AsEnumerable() where doublesArray.Contains(tq.Field<int>("Custom_ParentNodeId")) orderby tq.Field<int>("Custom_Displayorder") descending select tq; //转换为DataTable DataTable boundTable = foos.CopyToDataTable<DataRow>(); RepeaterMeau.DataSource = boundTable; RepeaterMeau.DataBind(); } }
【推荐】中国电信天翼云云端翼购节,2核2G云服务器一口价38元/年
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步