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. }
 
發佈了16 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章