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();
  • 相关阅读:
    IO 单个文件的多线程拷贝
    day30 进程 同步 异步 阻塞 非阻塞 并发 并行 创建进程 守护进程 僵尸进程与孤儿进程 互斥锁
    day31 进程间通讯,线程
    d29天 上传电影练习 UDP使用 ScketServer模块
    d28 scoket套接字 struct模块
    d27网络编程
    d24 反射,元类
    d23 多态,oop中常用的内置函数 类中常用内置函数
    d22 封装 property装饰器 接口 抽象类 鸭子类型
    d21天 继承
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/10269380.html
Copyright © 2011-2022 走看看