- using System;
- using System.Data;
- using System.Configuration;
- using System.Linq;
- using System.Web;
- using System.Xml.Linq;
- using System.Collections.Generic;
- using System.Linq.Expressions;
- using System.Data.Linq;
- using Database;
- /// <summary>
- ///linqHelper 的摘要說明
- /// </summary>
- namespace Business
- {
- public abstract class linqHelper<TDatabase>
- where TDatabase : DataContext, new()
- {
- /// <summary>
- /// 查詢全部數據
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <returns></returns>
- public static List<T> ReturnAllRows<T>(string conString) where T : class
- {
- TDatabase database = new TDatabase();
- database.Connection.ConnectionString = conString;
- return database.GetTable<T>().ToList<T>();
- }
- /// <summary>
- /// 查看是否存在數據
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="predicate"></param>
- /// <returns></returns>
- public static bool EntityExists<T>(string conString,Expression<Func<T, bool>> predicate)
- where T : class
- {
- TDatabase database = new TDatabase();
- database.Connection.ConnectionString = conString;
- return database.GetTable<T>().Where<T>(predicate).Count() > 0;
- }
- /// <summary>
- /// 有條件的查詢數據List<typeparamref name="數據源:DataContext"/> Filter<typeparamref name="表的類名:orders"/>
- /// 最後面的可以輸入LINQ查詢語句(p=>p.order_id="00001")或者(form o in orders where o.order_id>100 sleect o);
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="predicate"></param>
- /// <returns></returns>
- public static List<T> Filter<T>(string conString,Expression<Func<T, bool>> predicate)
- where T : class
- {
- TDatabase database = new TDatabase();
- database.Connection.ConnectionString = conString;
- return database.GetTable<T>().Where(predicate).ToList<T>();
- }
- /// <summary>
- /// 插入數據,好象只能一條,測試完弄個數據插入多條
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="entity"></param>
- public static void Insert<T>(string conString,T entity) where T : class
- {
- using (TDatabase database = new TDatabase())
- {
- database.Connection.ConnectionString = conString;
- database.GetTable<T>().InsertOnSubmit(entity);
- database.SubmitChanges();
- }
- }
- /// <summary>
- /// 刪除指定數據,支持多條刪除 Expression<Func<T, bool>> predicate就是查詢語句,只能用:p=>p.user_id=="123"的語句!
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="predicate"></param>
- ///返回值:0 成功 -1 失敗
- public static int Delete<T>(string conString,Expression<Func<T, bool>> predicate)
- where T : class
- {
- if (EntityExists<T>(conString, predicate))
- {
- using (TDatabase database = new TDatabase())
- {
- database.Connection.ConnectionString = conString;
- T t = (T)database.GetTable<T>().Where<T>(predicate).Single();
- database.GetTable<T>().DeleteOnSubmit(t);
- database.SubmitChanges();
- }
- return 0;
- }
- return -1;
- }
- /// <summary>
- /// 返回分頁面數據
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="pageSize">一次取多少條數據</param>
- /// <param name="currerCount">當前提交的頁數字</param>
- /// <returns></returns>
- public static List<T> getpPgeRow<T>(string conString,int pageSize, int currerCount) where T : class
- {
- TDatabase database = new TDatabase();
- database.Connection.ConnectionString = conString;
- return database.GetTable<T>().Skip<T>((currerCount - 1) * pageSize).Take<T>(pageSize).ToList<T>();
- }
- /// <summary>
- /// 返回多少條數據
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="predicate"></param>
- /// <returns></returns>
- public static int getPageCount<T>(string conString,Expression<Func<T, bool>> predicate) where T : class
- {
- TDatabase database = new TDatabase();
- database.Connection.ConnectionString = conString;
- return database.GetTable<T>().Where<T>(predicate).Count();
- }
- /// <summary>
- /// 一次插入多條數據
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="entity"></param>
- public static void insetRows<T>(string conString,List<T> entity) where T : class
- {
- using (TDatabase database = new TDatabase())
- {
- database.Connection.ConnectionString = conString;
- foreach(T t in entity.ToList())
- {
- database.GetTable<T>().InsertOnSubmit(t);
- database.SubmitChanges();
- }
- }
- }
- }
- }
linqHelper(隨便寫寫,參照別人的)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.