关Linq ExecuteQuery方法的一些问题

引用ScottGu:使ExecuteQuery(sql_exp)方法真正有用的是它允许你声明以何种方式将sql表达式返回的值进行格式化。

说明:
1、IExecuteQuery<T>中T类的字段名必须与sql_exp中SQL语句的列名一样才能填充实体类。
2、执行ExecuteQuery()返回的IExecuteQuery<T>不能进行多次(两次以上)结果集查询,且读取IExecuteQuery<T>必须保持connecton open,所以考虑转化为IList<T>。

例:

  1. public IList<menu_info> SelectNodes(string menu_parent_id)
  2.         {
  3.             sqlcon.Open();
  4.             SQLServerDBDataContext conn = new SQLServerDBDataContext(sqlcon);
  5.             IEnumerable<menu_info> theNodes = conn.ExecuteQuery<menu_info>("select tbMenu.menu_id,tbMenu.menu_name,tbMenu.menu_parent_id,tbMenu.menu_isFun,tbMenu_Page.page_name from tbMenu left join tbMenu_Page on tbMenu.menu_id=tbMenu_Page.menu_id where tbMenu.menu_parent_id=" + menu_parent_id);
  6.             
  7.             IList<menu_info> a=new List<menu_info>();
  8.             foreach (var t in theNodes) {
  9.                 a.Add(t);
  10.             }
  11.             sqlcon.Close();
  12.             return a;
  13.         }

 

实体类:

  1.     /// <summary>
  2.     /// 目录实体
  3.     /// </summary>
  4.     public class menu_info
  5.     {
  6.         /// <summary>
  7.         /// 目录ID
  8.         /// </summary>
  9.         public int menu_id;
  10.         /// <summary>
  11.         /// 目录名
  12.         /// </summary>
  13.         public string menu_name;
  14.         /// <summary>
  15.         /// 目录项是否叶子
  16.         /// </summary>
  17.         public bool menu_isFun;
  18.         /// <summary>
  19.         /// 父节点ID
  20.         /// </summary>
  21.         public int menu_parent_id;
  22.         /// <summary>
  23.         /// 目录URL
  24.         /// </summary>
  25.         public string page_name;
  26.     }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值