SqlSugar之DbContext


創建一個DbContext和DbSet進行使用,我們可以在DbSet中進行擴展我們的方法

 //可以直接用SimpleClient也可以擴展一個自個的類 
    //推薦直接用 SimpleClient 
    //為了照顧需要擴展的朋友,我們就來擴展一個SimpleClient,取名叫DbSet
    public class DbSet<T> : SimpleClient<T> where T : class, new()
    {
        public DbSet(SqlSugarClient context) : base(context)
        {

        }
        //SimpleClient中的方法滿足不了你,你可以擴展自已的方法

        /// <summary>
        /// 返回可迭代的
        /// </summary>
        /// <returns></returns>
        public ISugarQueryable<T> AsQueryable()
        {
            return Context.Queryable<T>();
        }

        /// <summary>
        /// 執行SQL語句
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public ISugarQueryable<T> Sql(string sql)
        {
            return Context.SqlQueryable<T>(sql);
        }

    }

    //創建一個DbContext類,使用DbSet(或者SimpleClient)
    public class DbContext
    {
        public DbContext()
        {
            Db = new SqlSugarClient(new ConnectionConfig()
            {
                ConnectionString = "Data Source = *; User ID = *; Password = *; ",
                DbType = DbType.Oracle,
                IsAutoCloseConnection = true,
                InitKeyType = InitKeyType.Attribute
            });

            ////調式代碼 用來打印SQL 
            //Db.Aop.OnLogExecuting = (sql, pars) =>
            //{
            //    Console.WriteLine(sql + "\r\n" +
            //        Db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
            //    Console.WriteLine();
            //};


        }
        public SqlSugarClient Db;//用來處理事務多表查詢和復雜的操作

        public DbSet<DemoStudent> DemoStudentDb => new DbSet<DemoStudent>(Db);    

    }

 

使用:

  //  dbOracle.Classa.AsQueryable() 你可以不必每次都要去ToList轉型

var datas = dbOracle.TManagementsinfos.AsQueryable().Where(x => x.Grouptype == 3 && x.Deptcode == "20107").Select(x => new { name = x.Managename, value = x.Username }).ToList();
//執行Sql語句
      List<CcBusiAdviceview> data = dbContext.CcBusiAdviceviews.Sql(sql).ToList();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM