RuoVea.ExSugar 6.0.18.14

There is a newer version of this package available.
See the version list below for details.
dotnet add package RuoVea.ExSugar --version 6.0.18.14                
NuGet\Install-Package RuoVea.ExSugar -Version 6.0.18.14                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RuoVea.ExSugar" Version="6.0.18.14" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RuoVea.ExSugar --version 6.0.18.14                
#r "nuget: RuoVea.ExSugar, 6.0.18.14"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install RuoVea.ExSugar as a Cake Addin
#addin nuget:?package=RuoVea.ExSugar&version=6.0.18.14

// Install RuoVea.ExSugar as a Cake Tool
#tool nuget:?package=RuoVea.ExSugar&version=6.0.18.14                

RuoVea.ExSqlSugar

介绍

ExSqlSugar SqlSugar扩展类库,支持简体中文、繁体中文、粤语、日语、法语、英语.

1.快速入门

通过Nuget安装组件

Install-Package RuoVea.ExSqlSugar

2、使用方式

方式一、

1.定义类 DefultDbContext继承 DbContext
/// <summary>
/// DefultDbContext
/// </summary>
public class DefultDbContext : DbContext
{
    /// <summary>
    /// DefultDbContext
    /// </summary>
    /// <param name="config"></param>
    public DefultDbContext(ConnectionConfig config) : base(config)
    {
    }
}

2.注入使用DbContext:builder.Services.AddDbContextSetup(x=>{});
builder.Services
    .AddDbContextSetup(provide=>new DefultDbContext(AppSettings.GetSection("DefultDbConnString").Get<ConnectionConfig>()))
3.使用的地方注入这个DefultDbContext
public class DemoService : IDemoService
{
    private readonly DefultDbContext _defultDbContext;
    /// <summary>
    /// 
    /// </summary>
    /// <param name="defultDbContext"></param>
    public DemoService(DefultDbContext defultDbContext)
    {
        _defultDbContext = defultDbContext;
    }
}

方式二、

注册服务

builder.Services.AddSqlSugarSetup(...);// 注册服务

builder.Services.AddSqlSugarSetup();// 注册服务

使用的地方使用

public class DemoService: IDemoService
{
    SugarRepository<SysUser>  _sysUserRepository;

    public DemoService(SugarRepository<SysUser> sysUserRepository) {
        _sysUserRepository = sysUserRepository;
    }
}

两种方式默认开启了标记删除过滤

按照程序集方式注入应用服务 builder.Services.AddInjectServiceSetup(assembly,)

添加sql执行相关日志

builder.Services.AddRestFulLogSetup<TFilterType>();

创建时

字段属性包涵

CreateTime||create_time 默认赋值系统当前时间
Creator 赋值当前登录用户(若有)
IsDelete||is_delete 赋值默认值0

修改时

字段属性包涵

ModifyTime||modify_time 默认赋值系统当前时间
Modifier 赋值当前登录用户(若有)

查询时

字段模型继承了

1、IDeletedEntity 将自动过滤 IsDeleted数据

2、EntityBase、ICreatorFilter 将自动过滤 UserId数据

3、内置过滤器

3.1、配置实体假删除过滤器
IDeletedEntity
3.2、创建用户赋值
EntityBase、ICreatorFilter
3.3、租户数据过滤
ITenantIdFilter
3.4、机构Id接口过滤器
ICreatorFilter
3.5、自定义实体过滤器接口
ICustormerEntityFilter

直接在数据模型中继承上述接口

4、内置事务单元

使用方式、

1、开启事务单元 services.AddSqlSugarSetup(IsAllUnitOfWork:true);// 注册服务 开启全局事务单元

2、在需要开启的控制器方法增加事务单元特性 [UnitOfWork]

5、配置文件

{
  /* 数据库链接 具体配置见SqlSugar官网(第一个为默认库不需要设置ConfigId)*/
  "ConnectionConfigs": [
    {
      "DbType": "Sqlite", /*MySql、SqlServer、Sqlite、Oracle、PostgreSQL、Dm、Kdbndp、Oscar、MySqlConnector、Access、OpenGauss、QuestDB、HG、ClickHouse、GBase、Odbc、Custom */
      "ConnectionString": "DataSource=./ruovea.dll", /*库连接字符串*/
      "EnableUnderLine": false, /*启用驼峰转下划线*/
      "EnableDiffLog": false, /*启用库表差异日志*/

      "IsEncrypt": false, /*是否加密*/
      "DbSecurity": "", /*链接字符串解密密钥*/

      "IsDeleteFilter": true, /*查询删除过滤 实体需继承 IDeletedEntity*/
      "IsUserIdFilter": false, /*查询过滤器默认为false,true的时候;当有用户cretor的时候将及时过滤 实体需继承ICreatorFilter或EntityBase*/
      "IsTenantIdFilter": false, /*查询过滤器 默认为false,true的时候;当有用户cretor的时候将及时过滤 实体需继承 ITenantIdFilter*/
      "CommandTimeOut": 30 /*设置 SQL 执行的超时时间(默认30)分钟 */
    }
    //  /*其他数据库配置(可以配置多个)*/
    //,{
    //  "ConfigId": "test",
    //  "DbType": "Sqlite",
    //  "ConnectionString": "DataSource=./test.db", // 库连接字符串

    //  "EnableUnderLine": false, /*启用驼峰转下划线*/
    //  "EnableDiffLog": false, /*启用库表差异日志*/

    //  "IsEncrypt": false, /*是否加密*/
    //  "DbSecurity": "", /*链接字符串解密密钥*/

    //  "IsDeleteFilter": true, /*查询删除过滤 实体需继承 IDeletedEntity*/
    //  "IsUserIdFilter": false, /*查询过滤器默认为false,true的时候;当有用户cretor的时候将及时过滤 实体需继承ICreatorFilter或EntityBase*/
    //  "IsTenantIdFilter": false, /*查询过滤器 默认为false,true的时候;当有用户cretor的时候将及时过滤 实体需继承 ITenantIdFilter*/
    //  "CommandTimeOut": 30 /*设置 SQL 执行的超时时间(默认30)分钟 */
    //}
  ]
}

6、已实现RestFulLog类

重写此类处理:异常日志,操作日志,差异日志

7、Dto

7.1、框架实体基类Id(EntityBaseIdDto)
/// <summary>
/// 框架实体基类Id
/// </summary>
public class EntityBaseIdDto
{
    /// <summary>
    /// 主键Id
    /// </summary>
    public long Id { get; set; }

    /// <summary>
    /// 检查验证Id
    /// </summary>
    public void Check()
}
7.2、实体种子数据接口(SeedDataEntity)
SeedDataEntity<TEntity> where TEntity : class, new()
{
    /// <summary>
    /// 种子数据
    /// </summary>
    /// <returns></returns>
    IList<TEntity> HasData();
}
7.3、框架实体基类(EntityBaseDto)
/// <summary>
/// 框架实体基类
/// </summary>
public class EntityBaseDto: EntityBaseIdDto
{ 
    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime? CreateTime { get; set; }

    /// <summary>
    /// 修改时间
    /// </summary>
    public DateTime? ModifyTime { get; set; }

    /// <summary>
    /// 创建者Id
    /// </summary>
    public long? Creator { get; set; }

    /// <summary>
    /// 修改人
    /// </summary>
    public long? Modifier { get; set; }

    /// <summary>
    /// 逻辑删除:0=未删除,1=已删除 Default:0
    /// </summary>
    public IsDelete? IsDelete { get; set; }
}

8、Entity

8.1、递增主键实体基类 (AutoKeyBase)
/// <summary>
/// 递增主键实体基类
/// </summary>
public class AutoKeyBase
{
    /// <summary>
    /// 主键Id
    /// </summary>
    public int Id { get; set; }
}
8.2、AutoKeyEntityBase
/// <summary>
/// 
/// </summary>
public partial class AutoKeyEntityBase : AutoKeyBase, IDeletedEntity, IAuditableEntity
{
    /// <summary>
    /// 创建时间
    /// </summary>
    [SugarColumn(ColumnDescription = "创建时间", IsOnlyIgnoreUpdate = true)]
    public virtual DateTime? CreateTime { get; set; }

    /// <summary>
    /// 修改时间
    /// </summary>
    [SugarColumn(ColumnDescription = "修改时间", IsOnlyIgnoreInsert = true)]
    public virtual DateTime? ModifyTime { get; set; }

    /// <summary>
    /// 创建者Id
    /// </summary>
    [SugarColumn(ColumnDescription = "创建者Id", IsOnlyIgnoreUpdate = true)]
    public virtual long? Creator { get; set; }

    /// <summary>
    /// 修改人
    /// </summary>
    [SugarColumn(ColumnDescription = "修改者Id")]
    public virtual long? Modifier { get; set; }

    /// <summary>
    /// 逻辑删除:0=未删除,1=已删除 Default:0
    /// </summary>
    [SugarColumn(ColumnDescription = "软删除标记", IsNullable = true)]
    public virtual IsDelete? IsDelete { get; set; }
}
8.3、框架实体基类 (EntityBase)
/// <summary>
/// 框架实体基类
/// </summary>
public partial class EntityBase : EntityBaseId, IDeletedEntity,IAuditableEntity
{
    /// <summary>
    /// 创建时间
    /// </summary>
    [SugarColumn(ColumnDescription = "创建时间", IsOnlyIgnoreUpdate = true)]
    public virtual DateTime? CreateTime { get; set; }

    /// <summary>
    /// 修改时间
    /// </summary>
    [SugarColumn(ColumnDescription = "修改时间", IsOnlyIgnoreInsert = true)]
    public virtual DateTime? ModifyTime { get; set; }

    /// <summary>
    /// 创建者Id
    /// </summary>
    [SugarColumn(ColumnDescription = "创建者Id", IsOnlyIgnoreUpdate = true)]
    public virtual long? Creator { get; set; }

    /// <summary>
    /// 修改人
    /// </summary>
    [SugarColumn(ColumnDescription = "修改者Id")]
    public virtual long? Modifier { get; set; }

    /// <summary>
    /// 逻辑删除:0=未删除,1=已删除 Default:0
    /// </summary>
    [SugarColumn(ColumnDescription = "软删除标记")]
    public virtual IsDelete? IsDelete { get; set; }  
}

8.4、框架实体基类Id (EntityBaseId)
/// <summary>
/// 框架实体基类Id
/// </summary>
public partial class EntityBaseId
{
    /// <summary>
    /// 主键Id
    /// </summary>
    [Display(Name = "主键Id")]
    [Required(ErrorMessage = "Id不能为空")]
    [DataValidation(ValidationTypes.Numeric)]
    [SugarColumn(IsPrimaryKey = true, IsIdentity = false)]
    public virtual long Id { get; set; }
}
8.5、租户基类实体 (EntityTenant)
/// <summary>
/// 租户基类实体
/// </summary>
public partial class EntityTenant : EntityBase, ITenantEntity
{
    /// <summary>
    /// 租户Id
    /// </summary>
    [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
    public virtual long? TenantId { get; set; }
}
8.6、租户基类实体Id (EntityTenantId)
/// <summary>
/// 租户基类实体Id
/// </summary>
public partial class EntityTenantId : EntityBaseId,ITenantEntity
{
    /// <summary>
    /// 租户Id
    /// </summary>
    [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
    public virtual long? TenantId { get; set; }
}

9、SqlSugar 打印SQL语句参数格式化帮助类

/// <summary>
/// 格式化参数拼接成完整的SQL语句
/// </summary>
/// <param name="sql"></param>
/// <param name="pars"></param>
/// <returns></returns>
public static string ParameterFormat(string sql, SugarParameter[] pars)

10、sqlsugar 配置扩展方法

/// <summary>
/// 配置 SqlSugar 客户端
/// </summary>
/// <param name="db">SqlSugar 客户端实例</param>
/// <param name="config">数据库连接配置</param>
/// <param name="commandTimeOut">命令超时时间(秒)</param>
/// <param name="currentUser"></param>
/// <param name="restFulLog">RESTful 日志接口实现</param>
/// <param name="userIdFilter">是否启用用户过滤器</param>
/// <param name="tenantIdFilter">是否启用租户过滤器</param>
/// <param name="deleteFilter">是否启用逻辑删除过滤器</param>
/// <param name="moreFilter">额外的过滤器操作委托</param>
public static void SqlSugarClientUtil(SqlSugarClient db, DbConnectionConfig config, int commandTimeOut, ICurrentUser currentUser, IRestFulLog restFulLog = null, bool userIdFilter = false, bool tenantIdFilter = false, bool deleteFilter = true, Action<SqlSugarScopeProvider> moreFilter = null)

/// <summary>
/// 
/// </summary>
/// <param name="dbConnection"></param>
/// <returns></returns>
public static List<DbConnectionConfig> GetDbConfig(List<DbConnectionConfig> dbConnection)

/// <summary>
/// 
/// </summary>
/// <param name="connectionConfigs"></param>
/// <returns></returns>
public static SqlSugarScope GetSqlSugarScope(List<DbConnectionConfig> connectionConfigs)

/// <summary>
/// 配置连接属性
/// </summary>
/// <param name="config"></param>
/// <param name="dataInfoCacheService"></param>
public static void SetDbConfig(DbConnectionConfig config, ICacheService dataInfoCacheService = null)

11、更多扩展

11.1、分页扩展
 /// <summary>
 /// 分页
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="query"></param>
 /// <param name="pageIndex"></param>
 /// <param name="pageSize"></param>
 /// <param name="isMapper"></param>
 /// <returns></returns>
 public static async Task<PageResult<T>> ToPageAsync<T>(this ISugarQueryable<T> query, int pageIndex, int pageSize, bool isMapper = true) 
 /// <summary>
 /// 分页
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <typeparam name="Dto"></typeparam>
 /// <param name="query"></param>
 /// <param name="pageIndex"></param>
 /// <param name="pageSize"></param>
 /// <returns></returns>
 public static async Task<PageResult<Dto>> ToPageAsync<T, Dto>(this ISugarQueryable<T> query, int pageIndex, int pageSize) 

 /// <summary>
 /// 分页
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <typeparam name="Dto"></typeparam>
 /// <param name="query"></param>
 /// <param name="pageParam"></param>
 /// <returns></returns>
 public static async Task<PageResult<Dto>> ToPageAsync<T, Dto>(this ISugarQueryable<T> query, PageParam pageParam) 
11.2、 分页拓展类
/// <summary>
/// 分页拓展
/// </summary>
/// <param name="entity"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
public static SqlSugarPagedList<TEntity> ToPagedList<TEntity>(this ISugarQueryable<TEntity> entity, int pageIndex, int pageSize)
    where TEntity : new() 

/// <summary>
/// 分页拓展
/// </summary>
/// <param name="entity"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
public static async Task<SqlSugarPagedList<TEntity>> ToPagedListAsync<TEntity>(this ISugarQueryable<TEntity> entity, int pageIndex, int pageSize)
    where TEntity : new() 
/// <summary>
/// 分页泛型集合
/// </summary>
/// <typeparam name="TEntity"></typeparam>
public class SqlSugarPagedList<TEntity>
    where TEntity : new()
{
    /// <summary>
    /// 页码
    /// </summary>
    public int Page { get; set; }

    /// <summary>
    /// 页容量
    /// </summary>
    public int PageSize { get; set; }

    /// <summary>
    /// 总条数
    /// </summary>
    public int Total { get; set; }

    /// <summary>
    /// 总页数
    /// </summary>
    public int TotalPages { get; set; }

    /// <summary>
    /// 当前页集合
    /// </summary>
    public IEnumerable<TEntity> Items { get; set; }

    /// <summary>
    /// 是否有上一页
    /// </summary>
    public bool HasPrevPage { get; set; }

    /// <summary>
    /// 是否有下一页
    /// </summary>
    public bool HasNextPage { get; set; }
}
11.3、SqlSugar 仓储实现类
 /// <summary>
 /// 判断类型是否实现某个泛型
 /// </summary>
 /// <param name="type">类型</param>
 /// <param name="generic">泛型类型</param>
 /// <returns>bool</returns>
 public static bool HasImplementedRawGeneric(this Type type, Type generic)
 /// <summary>
 /// 获取总数
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static int Count<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new()

 /// <summary>
 /// 获取总数
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static Task<int> CountAsync<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new()
 /// <summary>
 /// 检查是否存在
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static bool Any<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new()

 /// <summary>
 /// 检查是否存在
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static async Task<bool> AnyAsync<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new()
 /// <summary>
 /// 通过主键获取实体
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="Id"></param>
 /// <returns></returns>
 public static TEntity Single<TEntity>(this SqlSugarClient db, dynamic Id) where TEntity : class, new()

 /// <summary>
 /// 获取一个实体
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static TEntity Single<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new()

 /// <summary>
 /// 获取一个实体
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static Task<TEntity> SingleAsync<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new()
 /// <summary>
 /// 获取一个实体
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static TEntity FirstOrDefault<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new()

 /// <summary>
 /// 获取一个实体
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static async Task<TEntity> FirstOrDefaultAsync<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new()
 /// <summary>
 /// 获取列表
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <returns></returns>
 public static List<TEntity> ToList<TEntity>(this SqlSugarClient db) where TEntity : class, new()

 /// <summary>
 /// 获取列表
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static List<TEntity> ToList<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new()

 /// <summary>
 /// 获取列表
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <param name="orderByExpression"></param>
 /// <param name="orderByType"></param>
 /// <returns></returns>
 public static List<TEntity> ToList<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression, Expression<Func<TEntity, object>> orderByExpression = null, OrderByType orderByType = OrderByType.Asc) where TEntity : class, new()

 /// <summary>
 /// 获取列表
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <returns></returns>
 public static Task<List<TEntity>> ToListAsync<TEntity>(this SqlSugarClient db) where TEntity : class, new()

 /// <summary>
 /// 获取列表
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static Task<List<TEntity>> ToListAsync<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new()

 /// <summary>
 /// 获取列表
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <param name="orderByExpression"></param>
 /// <param name="orderByType"></param>
 /// <returns></returns>
 public static Task<List<TEntity>> ToListAsync<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression, Expression<Func<TEntity, object>> orderByExpression = null, OrderByType orderByType = OrderByType.Asc) where TEntity : class, new()
 /// <summary>
 /// 新增一条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity"></param>
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static int Insert<TEntity>(this SqlSugarClient db, TEntity entity, bool IgnoreColumns = true) where TEntity : class, new()

 /// <summary>
 /// 新增多条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="IgnoreColumns"></param>
 /// <param name="entities"></param>
 /// <returns></returns>
 public static int Insert<TEntity>(this SqlSugarClient db, bool IgnoreColumns = true, params TEntity[] entities) where TEntity : class, new()

 /// <summary>
 /// 新增多条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entities"></param>
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static int Insert<TEntity>(this SqlSugarClient db, IEnumerable<TEntity> entities, bool IgnoreColumns = true) where TEntity : class, new()

 /// <summary>
 /// 新增一条记录返回自增Id
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="insertObj"></param>
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static int InsertReturnIdentity<TEntity>(this SqlSugarClient db, TEntity insertObj, bool IgnoreColumns = true) where TEntity : class, new()

 /// <summary>
 /// 新增一条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity"></param>
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static Task<int> InsertAsync<TEntity>(this SqlSugarClient db, TEntity entity, bool IgnoreColumns = true) where TEntity : class, new()

 /// <summary>
 /// 新增多条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="IgnoreColumns"></param>
 /// <param name="entities"></param>
 /// <returns></returns>
 public static Task<int> InsertAsync<TEntity>(this SqlSugarClient db, bool IgnoreColumns = true, params TEntity[] entities) where TEntity : class, new()

 /// <summary>
 /// 新增多条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entities"></param>
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static Task<int> InsertAsync<TEntity>(this SqlSugarClient db, IEnumerable<TEntity> entities, bool IgnoreColumns = true) where TEntity : class, new()

 /// <summary>
 /// 新增一条记录返回自增Id
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity"></param>
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static async Task<long> InsertReturnIdentityAsync<TEntity>(this SqlSugarClient db, TEntity entity, bool IgnoreColumns = true) where TEntity : class, new()
     
 /// <summary>
 /// 更新一条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity"></param>
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static int Update<TEntity>(this SqlSugarClient db, TEntity entity, bool IgnoreColumns = true) where TEntity : class, new()

 /// <summary>
 /// 更新多条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="IgnoreColumns"></param>
 /// <param name="entities"></param>
 /// <returns></returns>
 public static int Update<TEntity>(this SqlSugarClient db, bool IgnoreColumns = true, params TEntity[] entities) where TEntity : class, new()

 /// <summary>
 /// 更新多条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entities"></param>
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static int Update<TEntity>(this SqlSugarClient db, IEnumerable<TEntity> entities, bool IgnoreColumns = true) where TEntity : class, new()

 /// <summary>
 /// 更新一条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity"></param>
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static Task<int> UpdateAsync<TEntity>(this SqlSugarClient db, TEntity entity, bool IgnoreColumns = true) where TEntity : class, new()

 /// <summary>
 /// 无主键更新一条记录
 /// </summary>    
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity">更新的实体</param>
 /// <param name="columns">根据那些字段更新</param>
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static Task<int> UpdateNoPrimaryKey<TEntity>(this SqlSugarClient db, TEntity entity, Expression<Func<TEntity, object>> columns, bool IgnoreColumns = true) where TEntity : class, new()

 /// <summary>
 /// 无主键更新一条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity">更新的实体</param>
 /// <param name="columns">根据那些字段更新</param>
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static Task<int> UpdateNoPrimaryKeyAsync<TEntity>(this SqlSugarClient db, TEntity entity, Expression<Func<TEntity, object>> columns, bool IgnoreColumns = true) where TEntity : class, new()

 /// <summary>
 /// 无主键更新多条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entitys">更新的实体</param>
 /// <param name="columns">根据那些字段更新</param>
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static Task<int> UpdateNoPrimaryKey<TEntity>(this SqlSugarClient db, List<TEntity> entitys, Expression<Func<TEntity, object>> columns, bool IgnoreColumns = true) where TEntity : class, new()

 /// <summary>
 /// 无主键更新多条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entitys">更新的实体</param>
 /// <param name="columns">根据那些字段更新</param> 
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static Task<int> UpdateNoPrimaryKeyAsync<TEntity>(this SqlSugarClient db, List<TEntity> entitys, Expression<Func<TEntity, object>> columns, bool IgnoreColumns = true) where TEntity : class, new()

 /// <summary>
 /// 更新多条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="IgnoreColumns"></param>
 /// <param name="entities"></param>
 /// <returns></returns>
 public static Task<int> UpdateAsync<TEntity>(this SqlSugarClient db, bool IgnoreColumns = true, params TEntity[] entities) where TEntity : class, new()

 /// <summary>
 /// 更新多条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entities"></param>
 /// <param name="IgnoreColumns"></param>
 /// <returns></returns>
 public static Task<int> UpdateAsync<TEntity>(this SqlSugarClient db, IEnumerable<TEntity> entities, bool IgnoreColumns = true) where TEntity : class, new()
     
 /// <summary>
 /// 删除一条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity"></param>
 /// <returns></returns>
 public static int Delete<TEntity>(this SqlSugarClient db, TEntity entity) where TEntity : class, new()

 /// <summary>
 /// 删除一条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="key"></param>
 /// <returns></returns>
 public static int Delete<TEntity>(this SqlSugarClient db, object key) where TEntity : class, new()

 /// <summary>
 /// 删除多条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="keys"></param>
 /// <returns></returns>
 public static int Delete<TEntity>(this SqlSugarClient db, params object[] keys) where TEntity : class, new()

 /// <summary>
 /// 自定义条件删除记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static int Delete<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new()

 /// <summary>
 /// 删除一条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity"></param>
 /// <returns></returns>
 public static Task<int> DeleteAsync<TEntity>(this SqlSugarClient db, TEntity entity) where TEntity : class, new()

 /// <summary>
 /// 删除一条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="key"></param>
 /// <returns></returns>
 public static Task<int> DeleteAsync<TEntity>(this SqlSugarClient db, object key) where TEntity : class, new()

 /// <summary>
 /// 删除多条记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="keys"></param>
 /// <returns></returns>
 public static Task<int> DeleteAsync<TEntity>(this SqlSugarClient db, params object[] keys) where TEntity : class, new()

 /// <summary>
 /// 自定义条件删除记录
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static async Task<int> DeleteAsync<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new()
 /// <summary>
 /// 构建查询分析器
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <returns></returns>
 public static ISugarQueryable<TEntity> AsQueryable<TEntity>(this SqlSugarClient db) where TEntity : class, new()

 /// <summary>
 /// 构建查询分析器
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="predicate"></param>
 /// <returns></returns>
 public static ISugarQueryable<TEntity> AsQueryable<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> predicate) where TEntity : class, new()

 /// <summary>
 /// 直接返回数据库结果
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <returns></returns>
 public static List<TEntity> AsEnumerable<TEntity>(this SqlSugarClient db) where TEntity : class, new()

 /// <summary>
 /// 直接返回数据库结果
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="predicate"></param>
 /// <returns></returns>
 public static List<TEntity> AsEnumerable<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> predicate) where TEntity : class, new()

 /// <summary>
 /// 直接返回数据库结果
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <returns></returns>
 public static Task<List<TEntity>> AsAsyncEnumerable<TEntity>(this SqlSugarClient db) where TEntity : class, new()

 /// <summary>
 /// 直接返回数据库结果
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="predicate"></param>
 /// <returns></returns>
 public static Task<List<TEntity>> AsAsyncEnumerable<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> predicate) where TEntity : class, new()
     
 /// <summary>
 /// 
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static bool IsExists<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new()
     
 /// <summary>
 /// 
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="db"></param>
 /// <param name="whereExpression"></param>
 /// <returns></returns>
 public static Task<bool> IsExistsAsync<TEntity>(this SqlSugarClient db, Expression<Func<TEntity, bool>> whereExpression) where TEntity : class, new() 
     
 /// <summary>
 /// 实体假删除 _rep.FakeDelete(entity)
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="repository"></param>
 /// <param name="entity"></param>
 /// <returns></returns>
 public static int FakeDelete<T>(this ISugarRepository repository, T entity) where T : EntityBase, new() 

 /// <summary>
 /// 实体假删除 db.FakeDelete(entity)
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity"></param>
 /// <returns></returns>
 public static int FakeDelete<T>(this ISqlSugarClient db, T entity) where T : EntityBase, new() 

 /// <summary>
 /// 实体假删除异步 _rep.FakeDeleteAsync(entity)
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="repository"></param>
 /// <param name="entity"></param>
 /// <returns></returns>
 public static Task<int> FakeDeleteAsync<T>(this ISugarRepository repository, T entity) where T : EntityBase, new() 

 /// <summary>
 /// 实体假删除 db.FakeDelete(entity)
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity"></param>
 /// <returns></returns>
 public static Task<int> FakeDeleteAsync<T>(this ISqlSugarClient db, T entity) where T : EntityBase, new() 

 /// <summary>
 /// 排序方式(默认降序)
 /// </summary>
 /// <param name="queryable"></param>
 /// <param name="pageInput"> </param>
 /// <param name="defualtSortField"> 默认排序字段 </param>
 /// <param name="descSort"> 是否降序 </param>
 /// <returns> </returns>
 public static ISugarQueryable<T> OrderBuilder<T, Input>(this ISugarQueryable<T> queryable, Input pageInput, string defualtSortField = "Id", bool descSort = true) where Input : PageParam,new() 

 /// <summary>
 /// 更新实体并记录差异日志 _rep.UpdateWithDiffLog(entity)
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="repository"></param>
 /// <param name="entity"></param>
 /// <param name="ignoreAllNullColumns"></param>
 /// <returns></returns>
 public static int UpdateWithDiffLog<T>(this ISugarRepository repository, T entity, bool ignoreAllNullColumns = true) where T : class, new() 

 /// <summary>
 /// 更新实体并记录差异日志 _rep.UpdateWithDiffLog(entity)
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity"></param>
 /// <param name="ignoreAllNullColumns"></param>
 /// <returns></returns>
 public static int UpdateWithDiffLog<T>(this ISqlSugarClient db, T entity, bool ignoreAllNullColumns = true) where T : class, new() 

 /// <summary>
 /// 更新实体并记录差异日志 _rep.UpdateWithDiffLogAsync(entity)
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="repository"></param>
 /// <param name="entity"></param>
 /// <param name="ignoreAllNullColumns"></param>
 /// <returns></returns>
 public static Task<int> UpdateWithDiffLogAsync<T>(this ISugarRepository repository, T entity, bool ignoreAllNullColumns = true) where T : class, new() 

 /// <summary>
 /// 更新实体并记录差异日志 _rep.UpdateWithDiffLogAsync(entity)
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity"></param>
 /// <param name="ignoreAllNullColumns"></param>
 /// <returns></returns>
 public static Task<int> UpdateWithDiffLogAsync<T>(this ISqlSugarClient db, T entity, bool ignoreAllNullColumns = true) where T : class, new() 

 /// <summary>
 /// 新增实体并记录差异日志 _rep.InsertWithDiffLog(entity)
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="repository"></param>
 /// <param name="entity"></param>
 /// <returns></returns>
 public static int InsertWithDiffLog<T>(this ISugarRepository repository, T entity) where T : class, new() 

 /// <summary>
 /// 新增实体并记录差异日志 _rep.InsertWithDiffLog(entity)
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity"></param>
 /// <returns></returns>
 public static int InsertWithDiffLog<T>(this ISqlSugarClient db, T entity) where T : class, new() 

 /// <summary>
 /// 新增实体并记录差异日志 _rep.InsertWithDiffLogAsync(entity)
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="repository"></param>
 /// <param name="entity"></param>
 /// <returns></returns>
 public static Task<int> InsertWithDiffLogAsync<T>(this ISugarRepository repository, T entity) where T : class, new() 

 /// <summary>
 /// 新增实体并记录差异日志 _rep.InsertWithDiffLog(entity)
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="db"></param>
 /// <param name="entity"></param>
 /// <returns></returns>
 public static Task<int> InsertWithDiffLogAsync<T>(this ISqlSugarClient db, T entity) where T : class, new() 
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on RuoVea.ExSugar:

Package Downloads
RuoVea.OmiApi.Config

参数配置接口

RuoVea.OmiApi.Dict

字典管理

RuoVea.OmiApi.Log

日志管理

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
8.0.0.11 249 3/3/2025
8.0.0.10 115 11/1/2024
8.0.0.9 102 10/26/2024
8.0.0.8 94 10/25/2024
8.0.0.7 101 10/10/2024
8.0.0.6 105 9/24/2024
8.0.0.5 105 9/22/2024
8.0.0.4 95 9/22/2024
8.0.0.3 110 9/19/2024
8.0.0.2 117 9/11/2024
8.0.0.1 117 8/29/2024
8.0.0 120 8/28/2024
7.0.0.11 314 3/3/2025
7.0.0.10 88 11/1/2024
7.0.0.9 91 10/26/2024
7.0.0.8 85 10/25/2024
7.0.0.7 105 10/10/2024
7.0.0.6 94 9/24/2024
7.0.0.5 101 9/22/2024
7.0.0.4 102 9/22/2024
7.0.0.3 98 9/19/2024
7.0.0.2 114 9/11/2024
7.0.0.1 111 8/29/2024
7.0.0 115 8/28/2024
6.0.18.14 414 3/3/2025
6.0.18.13 2,693 11/1/2024
6.0.18.12 433 10/26/2024
6.0.18.11 94 10/25/2024
6.0.18.10 260 10/10/2024
6.0.18.9 589 9/24/2024
6.0.18.8 175 9/22/2024
6.0.18.7 107 9/19/2024
6.0.18.6 169 9/11/2024
6.0.18.5 125 8/29/2024
6.0.18.4 102 8/28/2024
6.0.18.3 127 8/25/2024
6.0.18.2 147 3/13/2024
6.0.18.1 139 3/13/2024
6.0.18 268 3/25/2023
6.0.17 251 3/25/2023
6.0.16 251 3/25/2023
6.0.15 263 3/24/2023
6.0.13 241 3/15/2023
6.0.12 240 3/14/2023
6.0.11 258 3/14/2023
6.0.10 285 3/11/2023
6.0.9 517 8/22/2022
6.0.8 485 8/18/2022
6.0.7 463 8/17/2022
6.0.6 490 8/16/2022
6.0.5 506 7/5/2022
6.0.4 510 7/5/2022
6.0.3 538 6/10/2022
6.0.2 580 4/11/2022
6.0.1 590 4/11/2022
6.0.0 601 3/18/2022
5.0.1.6 123 3/3/2025
5.0.1.5 88 11/1/2024
5.0.1.4 92 10/26/2024
5.0.1.3 89 10/25/2024
5.0.1.2 94 10/10/2024
5.0.1.1 101 9/24/2024
5.0.1 659 3/18/2022
5.0.0 575 3/18/2022