RuoVea.ExSugar
6.0.18.14
There is a newer version of this package available.
See the version list below for details.
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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
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 | Versions 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.
-
net6.0
- Mapster (>= 7.4.0)
- Microsoft.Extensions.DependencyModel (>= 8.0.2)
- RuoVea.ExCache (>= 6.0.5.3)
- RuoVea.ExDto (>= 6.0.12.1)
- RuoVea.ExIdGen (>= 6.0.1)
- RuoVea.ExUtil (>= 6.0.14.1)
- RuoVea.SM (>= 6.0.1.1)
- SqlSugarCore (>= 5.1.4.178)
- System.Linq.Dynamic.Core (>= 1.4.8)
- System.Text.RegularExpressions (>= 4.3.1)
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 |