using DClient;using System;using System.Collections.Generic;using System.Configuration;using System.Linq;using System.Text;using System.Threading.Tasks;namespace CouchBaseDAL{    public class CsCouchBaseHelper    {        static Repository myRepository = DClientHelper.GetRepository(ConfigurationManager.AppSettings["CouchBaseBucketName"], ConfigurationManager.AppSettings["db_adminName"], ConfigurationManager.AppSettings["db_adminPassWord"]);        static string id;        static string msg;        /// <summary>        /// 增加        /// </summary>        /// <typeparam name="T">實(shí)體類</typeparam>        /// <param name="doc">實(shí)體</param>        /// <returns></returns>        public static bool Add<T>(T doc) where T : class        {            return myRepository.Add(doc, out id, out msg);        }        /// <summary>        /// 修改        /// </summary>        /// <typeparam name="T">實(shí)體類</typeparam>        /// <param name="id">主鍵ID</param>        /// <param name="doc">實(shí)體</param>        /// <returns></returns>        public static bool Update<T>(string id, T doc) where T : class        {            return myRepository.Update(id, doc, out msg);        }        /// <summary>        /// 刪除        /// </summary>        /// <param name="id">主鍵ID</param>        /// <returns></returns>        public static bool Delete(string id)        {            return myRepository.Delete(id, out msg);        }        /// <summary>        /// 取到一個(gè)唯一的實(shí)體        /// </summary>        /// <typeparam name="T">實(shí)體類</typeparam>        /// <param name="id">主鍵ID</param>        /// <returns></returns>        public static T Get<T>(string id) where T : class        {            return myRepository.Get<T>(id, out msg);        }        /// <summary>        /// 查詢1參數(shù)        /// </summary>        /// <typeparam name="T">實(shí)體類</typeparam>        /// <param name="fieldName">參數(shù)名</param>        /// <param name="fieldValueFrom">參數(shù)數(shù)值范圍</param>        /// <param name="fieldValueTo">參數(shù)數(shù)值范圍</param>        /// <param name="limitNum">取出數(shù)據(jù)的條數(shù)</param>        /// <param name="skipNum">跳過多少條</param>        /// <returns></returns>        public static List<T> Query<T>(string fieldName, object fieldValueFrom, object fieldValueTo, int limitNum = 0, int skipNum = 0) where T : class        {            return myRepository.Query<T>(fieldName, fieldValueFrom, fieldValueTo, out msg, StaleSetting.State.False, limitNum, skipNum).Select<QueryResult<T>, T>(d => d.value).ToList();        }        /// <summary>        /// 查詢記錄數(shù)1參數(shù)        /// </summary>        /// <typeparam name="T">實(shí)體類</typeparam>        /// <param name="fieldName">參數(shù)</param>        /// <param name="fieldValueFrom">數(shù)值范圍</param>        /// <param name="fieldValueTo">數(shù)值范圍</param>        /// <param name="limitNum">取出數(shù)據(jù)的條數(shù)</param>        /// <param name="skipNum">跳過多少條</param>        /// <returns></returns>        public static int QueryCount1<T>(string fieldName, object fieldValueFrom, object fieldValueTo, int limitNum = 0, int skipNum = 0) where T : class        {            int iCount = 0;            IList<QueryResult<object>> myCount = myRepository.Query<T, object>(fieldName, fieldValueFrom, fieldValueTo, out msg, StaleSetting.State.False, limitNum, skipNum, false, true);            if (myCount.Count > 0)            {                iCount = Convert.ToInt32(myCount[0].value);            }            return iCount;        }        /// <summary>        /// 查詢記錄數(shù)2參數(shù)        /// </summary>        /// <typeparam name="T">實(shí)體類</typeparam>        /// <param name="field1Name">參數(shù)1</param>        /// <param name="field1Value">參數(shù)1數(shù)據(jù)</param>        /// <param name="field2Name">參數(shù)2</param>        /// <param name="field2ValueFrom">參數(shù)2數(shù)值范圍</param>        /// <param name="field2ValueTo">參數(shù)2數(shù)值范圍</param>        /// <param name="limitNum">取出數(shù)據(jù)的條數(shù)</param>        /// <param name="skipNum">跳過多少條</param>        /// <returns></returns>        public static int QueryCount2<T>(string field1Name, object field1Value, string field2Name, object field2ValueFrom, object field2ValueTo, int limitNum = 0, int skipNum = 0) where T : class        {            int iCount = 0;            IList<QueryResult<object>> myCount = myRepository.Query<T, object>(field1Name, field1Value, field2Name, field2ValueFrom, field2ValueTo, out msg, StaleSetting.State.False, limitNum, skipNum, false, true);            if (myCount.Count>0)            {                iCount = Convert.ToInt32(myCount[0].value);            }            return iCount;        }        /// <summary>        /// 查詢2參數(shù)        /// </summary>        /// <typeparam name="T">實(shí)體類</typeparam>        /// <param name="field1Name">參數(shù)1</param>        /// <param name="field1Value">參數(shù)1數(shù)據(jù)</param>        /// <param name="field2Name">參數(shù)2</param>        /// <param name="field2ValueFrom">參數(shù)2數(shù)值范圍</param>        /// <param name="field2ValueTo">參數(shù)2數(shù)值范圍</param>        /// <param name="limitNum">取出數(shù)據(jù)的條數(shù)</param>        /// <param name="skipNum">跳過多少條</param>        /// <returns></returns>        public static List<T> Query<T>(string field1Name, object field1Value, string field2Name, object field2ValueFrom, object field2ValueTo, int limitNum = 0, int skipNum = 0) where T : class        {            return myRepository.Query<T>(field1Name, field1Value, field2Name, field2ValueFrom, field2ValueTo, out msg, StaleSetting.State.False, limitNum, skipNum).Select<QueryResult<T>, T>(d => d.value).ToList();        }        /// <summary>        /// 查詢所有數(shù)據(jù)        /// </summary>        /// <typeparam name="T">實(shí)體類</typeparam>        /// <param name="limitNum">取出數(shù)據(jù)的條數(shù)</param>        /// <param name="skipNum">跳過多少條</param>        /// <returns></returns>        public static List<T> GetAll<T>(int limitNum = 0, int skipNum = 0) where T : class        {            return myRepository.GetAll<T>(out msg, StaleSetting.State.False, limitNum, skipNum).Select<QueryResult<T>, T>(d => d.value).ToList();        }        /// <summary>        /// 查詢所有數(shù)據(jù)條數(shù)        /// </summary>        /// <typeparam name="T">實(shí)體類</typeparam>        /// <param name="limitNum">取出數(shù)據(jù)的條數(shù)</param>        /// <param name="skipNum">跳過多少條</param>        /// <returns></returns>        public static int GetAllCount<T>(int limitNum = 0, int skipNum = 0) where T : class        {            int iCount = 0;            IList<QueryResult<object>> myCount = myRepository.GetAll<T, object>(out msg, StaleSetting.State.False, limitNum, skipNum, false, true);            if (myCount.Count > 0)            {                iCount = Convert.ToInt32(myCount[0].value);            }            return iCount;        }        /// <summary>        /// N1ql查詢        /// </summary>        /// <typeparam name="T">實(shí)體類</typeparam>        /// <param name="sN1ql">N1ql語(yǔ)句</param>        /// <returns></returns>        public static List<T> RunQuery<T>(string sN1ql) where T : class        {            return myRepository.RunQuery<T>(out msg, sN1ql);        }    }}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注