码迷,mamicode.com
首页 > 数据库 > 详细

C# SqlSugarClient分析一点

时间:2019-09-03 16:42:25      阅读:602      评论:0      收藏:0      [点我收藏+]

标签:amp   private   ESS   sha   getc   返回   iss   use   pass   

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

 

cehsimodelManager abc = new cehsimodelManager();
abc.GetFirst(u => u.btnname == "admin" && u.btnid == "123465");   //c#
//sql
exec sp_executesql NSELECT * FROM (SELECT [btnname],[btnid],ROW_NUMBER() OVER(ORDER BY GETDATE() ) AS RowIndex FROM [cehsimodel] WHERE (( [btnname] = @btnname0 ) AND ( [btnid] = @btnid1 ))) T WHERE RowIndex BETWEEN 1 AND 1,N@btnname0 nvarchar(4000),@btnid1 nvarchar(4000),@btnname0=Nadmin,@btnid1=N123465 --[cehsimodel] 类的名称要和表名称一致

 

public class cehsimodelManager : DbContext<cehsimodel>
{}

//类

public class cehsimodel
{
public string btnname { get; set; }

public string btnid { get; set; }
}

C# SqlSugarClient分析一点

标签:amp   private   ESS   sha   getc   返回   iss   use   pass   

原文地址:https://www.cnblogs.com/enych/p/11453560.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!