public class UserManager : DbContext<User>{} UserManager userdb = new UserManager(); //创建对象 var user = userdb.GetFirst(u => u.UserName == userName && u.Password == pwd); //继承,可以使用父类方法GetFirst() public class DbContext<T> where T : class, new() { public SqlSugarClient Db;//用来处理事务多表查询和复杂的操作 public DbContext() { Db = new SqlSugarClient(new ConnectionConfig() { … }); } public virtual T GetFirst(Expression<Func<T, bool>> whereExpression) { return Db.Queryable<T>().First(whereExpression); } } SqlSugarClient Db对象下面的方法 public class SqlSugarClient : ISqlSugarClient, IDisposable, Itenant { public SqlSugarProvider Context => GetContext(); //public ISugarQueryable<T> Queryable<T>(); public ISugarQueryable<T> Queryable<T>() { return Context.Queryable<T>(); //返回的对象的类是继承于ISugarQueryable<T>接口 //所以可以继续点first方法 Db.Queryable<T>().First(whereExpression); } private SqlSugarProvider GetContext() { if (IsSameThreadAndShard()) { return SameThreadAndShard(); } if (IsNoSameThreadAndShard()) { return NoSameThreadAndShard(); } if (IsSynchronization()) { return Synchronization(); } return NoSameThread(); } } //接口 ; 继承并实现first方法 public interface ISugarQueryable<T> { T First(Expression<Func<T, bool>> expression); } // \.nuget\packages\sqlsugarcore\5.0.0.1\lib\netstandard2.0\SqlSugar.dll
C# SqlSugarClient分析一点
猜你喜欢
转载自www.cnblogs.com/enych/p/11453560.html
今日推荐
周排行