zoukankan      html  css  js  c++  java
  • 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 + "
    " +
                //        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();
  • 相关阅读:
    [C++] inline内联函数使用方法
    [C++] new和delete运算符使用方法
    [C++] namespace命名空间和using用法
    [C++] 引用类型&
    [C++] wchar_t关键字使用方法
    [C++] typeid关键字使用方法
    json_encode转化索引数组之后依然还是数组的问题
    微信网页授权 的流程
    验证码比较hash_equals 方法
    laravel 模型观察器
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/10269380.html
Copyright © 2011-2022 走看看