下面我们来介绍下SimpleClient,它是封装了常用方法的工具类,用法相当简单:
//创建SqlSugarClient对象 var db = new SqlSugarClient(xxx); var sdb = new SimpleClient<Student>(db); var student2 = sdb.GetById(1); var isDel=sdb.DeleteById(1);
继承扩展
//可以直接用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
重点注意:XxBLL调用的时候不能调成静态或者单列,错误写法 static XxBLL xxbll=new XxBLL(); 保证都new出来

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();
2016 © donet5.comApache Licence 2.0