了解SimpleClient特性

下面我们来介绍下SimpleClient,它是封装了常用方法的工具类,用法相当简单:

//创建SqlSugarClient对象
var db = new SqlSugarClient(xxx);
var sdb = new SimpleClient<Student>(db);
var student2 = sdb.GetById(1);
var  isDel=sdb.DeleteById(1);



SqlSugar推荐用法

继承扩展

//可以直接用SimpleClient也可以扩展一个自个的类 
//推荐直接用 SimpleClient 
//为了照顾需要扩展的朋友,我们就来扩展一个SimpleClient,取名叫DbSet
public class DbSet<T>:SimpleClient<T> where T : class, new()
{
    public DbSet(SqlSugarClient context):base(context)
    {
           
    }
    //SimpleClient中的方法满足不了你,你可以扩展自已的方法
    public List<T> GetByIds(dynamic [] ids)
    {
        return Context.Queryable<T>().In(ids).ToList(); ;
    }
}

//创建一个DbContext类,使用DbSet(或者SimpleClient)
public class DbContext
{
        public DbContext()
        {
            Db = new SqlSugarClient(new ConnectionConfig()
            {
                ConnectionString = "xx",
                DbType = DbType.SqlServer,
                IsAutoCloseConnection = true
            });
        }
        public SqlSugarClient Db;//用来处理事务多表查询和复杂的操作
        public DbSet<Student> StudentDb { get { return new DbSet<Student>(db); } }//用来处理Student表的常用操作
        public DbSet<School> SchoolDb { get { return new DbSet<School>(db); } }//用来处理School表的常用操作
}

下面我们来使用DbContext

image.png


StudentDb可以点出SimpleClient(或者你扩展的DbSet类)中的所有方法 


Db可以完成复杂的工作,弥补StudentDb和SchoolDb的不足,因为他们只能操作一张表

//用db完成复杂的工作

List<Student> list2=StudentDb.GetList();//使用 StudentDb查询

//使用db处理事务
Db.Ado.UseTran(() =>
{

    var s= SchoolDb.GetById(1);//使用SchoolDb查询一条记录
                    
});

//使用db多表查询
var viewList= Db
           .Queryable<Student, School>((st, sc) => st.SchoolId == sc.Id)
		   .Select((st, sc) => new { st, sc })
		   .ToList();



 




































收藏到朋友圈: