linqHelper(随便写写,参照别人的)

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Linq;
  5. using System.Web;
  6. using System.Xml.Linq;
  7. using System.Collections.Generic;
  8. using System.Linq.Expressions;
  9. using System.Data.Linq;
  10. using Database;
  11. /// <summary>
  12. ///linqHelper 的摘要说明
  13. /// </summary>
  14. namespace Business
  15. {
  16.     public abstract class linqHelper<TDatabase>
  17. where TDatabase : DataContext, new()
  18.     {
  19.         /// <summary>
  20.         /// 查询全部数据
  21.         /// </summary>
  22.         /// <typeparam name="T"></typeparam>
  23.         /// <returns></returns>
  24.         public static List<T> ReturnAllRows<T>(string conString) where T : class
  25.         {
  26.             TDatabase database = new TDatabase();
  27.             database.Connection.ConnectionString = conString;
  28.             return database.GetTable<T>().ToList<T>();
  29.         }
  30.         /// <summary>
  31.         /// 查看是否存在数据
  32.         /// </summary>
  33.         /// <typeparam name="T"></typeparam>
  34.         /// <param name="predicate"></param>
  35.         /// <returns></returns>
  36.         public static bool EntityExists<T>(string conString,Expression<Func<T, bool>> predicate)
  37.         where T : class
  38.         {
  39.             TDatabase database = new TDatabase();
  40.             database.Connection.ConnectionString = conString;
  41.             return database.GetTable<T>().Where<T>(predicate).Count() > 0;
  42.         }
  43.         /// <summary>
  44.         /// 有条件的查询数据List<typeparamref name="数据源:DataContext"/>  Filter<typeparamref name="表的类名:orders"/> 
  45.         /// 最后面的可以输入LINQ查询语句(p=>p.order_id="00001")或者(form o in orders where o.order_id>100 sleect o);
  46.         /// </summary>
  47.         /// <typeparam name="T"></typeparam>
  48.         /// <param name="predicate"></param>
  49.         /// <returns></returns>
  50.         public static List<T> Filter<T>(string conString,Expression<Func<T, bool>> predicate)
  51.         where T : class
  52.         {
  53.             TDatabase database = new TDatabase();
  54.             
  55.             database.Connection.ConnectionString = conString;
  56.             return database.GetTable<T>().Where(predicate).ToList<T>();
  57.         }
  58.         /// <summary>
  59.         /// 插入数据,好象只能一条,测试完弄个数据插入多条
  60.         /// </summary>
  61.         /// <typeparam name="T"></typeparam>
  62.         /// <param name="entity"></param>
  63.         public static void Insert<T>(string conString,T entity) where T : class
  64.         {
  65.             using (TDatabase database = new TDatabase())
  66.             {
  67.                 database.Connection.ConnectionString = conString;
  68.                 database.GetTable<T>().InsertOnSubmit(entity);
  69.                 database.SubmitChanges();
  70.             }
  71.         }
  72.         /// <summary>
  73.         /// 删除指定数据,支持多条删除  Expression<Func<T, bool>> predicate就是查询语句,只能用:p=>p.user_id=="123"的语句!
  74.         /// </summary>
  75.         /// <typeparam name="T"></typeparam>
  76.         /// <param name="predicate"></param>
  77.         ///返回值:0 成功    -1 失败
  78.         public static int Delete<T>(string conString,Expression<Func<T, bool>> predicate)
  79.         where T : class
  80.         {
  81.             if (EntityExists<T>(conString, predicate))
  82.             {
  83.                 using (TDatabase database = new TDatabase())
  84.                 {
  85.                     database.Connection.ConnectionString = conString;
  86.                     T t = (T)database.GetTable<T>().Where<T>(predicate).Single();
  87.                     database.GetTable<T>().DeleteOnSubmit(t);
  88.                     database.SubmitChanges();
  89.                 }
  90.                 return 0;
  91.             }
  92.             return -1;
  93.         }
  94.         /// <summary>
  95.         /// 返回分页面数据
  96.         /// </summary>
  97.         /// <typeparam name="T"></typeparam>
  98.         /// <param name="pageSize">一次取多少条数据</param>
  99.         /// <param name="currerCount">当前提交的页数字</param>
  100.         /// <returns></returns>
  101.         public static List<T> getpPgeRow<T>(string conString,int pageSize, int currerCount) where T : class
  102.         {
  103.             TDatabase database = new TDatabase();
  104.             database.Connection.ConnectionString = conString;
  105.             return database.GetTable<T>().Skip<T>((currerCount - 1) * pageSize).Take<T>(pageSize).ToList<T>();
  106.         }
  107.         /// <summary>
  108.         /// 返回多少条数据
  109.         /// </summary>
  110.         /// <typeparam name="T"></typeparam>
  111.         /// <param name="predicate"></param>
  112.         /// <returns></returns>
  113.         public static int getPageCount<T>(string conString,Expression<Func<T, bool>> predicate) where T : class
  114.         {
  115.             TDatabase database = new TDatabase();
  116.             database.Connection.ConnectionString = conString;
  117.             return database.GetTable<T>().Where<T>(predicate).Count();
  118.         }
  119.         /// <summary>
  120.         /// 一次插入多条数据 
  121.         /// </summary>
  122.         /// <typeparam name="T"></typeparam>
  123.         /// <param name="entity"></param>
  124.         public static void insetRows<T>(string conString,List<T> entity) where T : class
  125.         {
  126.             using (TDatabase database = new TDatabase())
  127.             {
  128.                 database.Connection.ConnectionString = conString;
  129.                 foreach(T t in entity.ToList())
  130.                 {
  131.                     database.GetTable<T>().InsertOnSubmit(t);
  132.                     database.SubmitChanges();
  133.                 }
  134.                
  135.             }
  136.         }
  137.     }
  138. }
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值