創建一個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();