linq to xml/动态类型 从树型表构建树(linq to entity处理数据库)
2011-07-14 10:43
671 查看
有疑问的可以去下面地址联系我 欢迎拍砖!
http://bbs.ctrlc.com.cn/forum.php?mod=viewthread&tid=594&extra=page%3D1
数据库
linq to xml方法
dynamic方式构建
http://bbs.ctrlc.com.cn/forum.php?mod=viewthread&tid=594&extra=page%3D1
数据库
linq to xml方法
public dynamic GetAllTree() { List<MenuClassify> roots = GetAllRoot();//取得所有根节点 //创建xml XDocument tree = new XDocument(); tree.Declaration = new XDeclaration("1.0", "utf-8", "no"); tree.Add(new XElement("Tree")); //添加树 foreach (var menuClassify in roots) { XElement node=new XElement("Node");//添加节点 node.SetAttributeValue("name", menuClassify.Name);//为节点添加属性 node.SetAttributeValue("id", menuClassify.MenuClassifyID); tree.Element("Tree").Add(node);//将节点加入树 NextNode(menuClassify.MenuClassifyID,node);//开始递归 } string xmlstr = tree.ToString(); XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlstr); string jsonStr = JsonConvert.SerializeXmlNode(doc); return tree; }
public void NextNode(int id,XElement parentNode) { var nodes = DBHelper.Entity.MenuClassifies.Where(m => m.ParentID == id).Select(m => m);//获得次父节点的所有子节点 foreach (var node in nodes) { XElement xNode=new XElement("Node"); parentNode.Add(xNode); xNode.SetAttributeValue("name",node.Name); xNode.SetAttributeValue("id",node.MenuClassifyID); NextNode(node.MenuClassifyID,xNode);//递归遍历 } }
dynamic方式构建
public dynamic GetAllTree() { List<MenuClassify> roots = GetAllRoot();//取得所有根节点 List<dynamic> tree=new List<dynamic>(); foreach (var root in roots) { dynamic node = new ExpandoObject();//创建节点 node.name = root.Name;//为属性赋值 node.id = root.MenuClassifyID; tree.Add(node);//将节点加入树 NextNode(root.MenuClassifyID,node);//开始递归 } string jsonstr = JsonConvert.SerializeObject(tree);//test部分 序列化成json return tree; } public void NextNode(int id,dynamic parentNode) { var nodes = DBHelper.Entity.MenuClassifies.Where(m => m.ParentID == id).Select(m => m); if (nodes.ToList().Count != 0)//存在子节点 { List<dynamic> list = new List<dynamic>(); parentNode.nodes = list; foreach (var node in nodes) { dynamic n = new ExpandoObject(); n.name = node.Name; n.id = node.MenuClassifyID; list.Add(n); NextNode(node.MenuClassifyID, n); } } }
相关文章推荐
- Expression构建DataTable to Entity 映射委托 sqlserver 数据库里面金额类型为什么不建议用float,实例告诉你为什么不能。 sql server 多行数据合并成一列 C# 字符串大写转小写,小写转大写,数字保留,其他除外 从0开始用U盘制作启动盘装Windows10系统(联想R720笔记本)并永久激活方法 纯CSS打造淘宝导航菜单栏 C# Winform
- 使用Linq to xml 动态创建Xml文件(数据来自数据库)
- “System.NotSupportedException”类型的异常在 System.Data.Entity.dll 中发生,但未在用户代码中进行处理 其他信息: 在 LINQ to Entitie
- 提交了 VS 2008 sp1 对 Linq to SQL 的 xml 字段类型支持的一个 bug
- Linq操作数据库、Linq To XML
- Linq to Entity 求最大小值Max/Min返回null的处理方法
- ADO.NET Entity Framework beta 3 和Linq to SQL 在缓存处理上的不同
- LINQ to SQL 运行时动态构建查询条件
- 数据库中存在nchar类型的列时, 使用Linq to sql的问题
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- 提交了 VS 2008 sp1 对 Linq to SQL 的 xml 字段类型支持的一个 bug
- linq to entity 错误 1 错误 75: 类型 视图名称 的键部分 “主键的列名1”无效。该键的所有部分都必须不可以为 null。(转)
- 1.4.2 用LINQ to XML 对 XML 文件进行处理
- Silverlight + WCF使用Linq to SQL以及ADO.NET Entity Data Model更新数据库子表方法
- Linq to XML读取数据库生成XML
- Visual C# 2008+SQL Server 2005 数据库与网络开发-- 11.5 LINQ To XML
- Linq to Entity经验:动态查询
- Linq to Entity 动态拼接查询条件(重点是OR)
- Linq中字段数据类型转换问题(Linq to entity,LINQ to Entities 不识别方法"System.String ToString()"问题解决)
- 使用Linq to XML来将hardcode在reporting services报表里的label文字变成从数据库取值