Files
YunTongJackYunTask/Reportapi/MyCode.Project.Domain/Repositories/IRepository.cs
2025-07-04 09:50:02 +08:00

242 lines
8.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Domain.Repositories
{
public interface IRepository
{
/// <summary>
/// 按字段批量修改一组对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="updateObjs"></param>
/// <param name="columns"></param>
int Update<T>(List<T> updateObjs, Expression<Func<T, object>> columns) where T : class, new();
/// <summary>
/// 增加允许跨仓储调用修改方法
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="updateObjs"></param>
/// <param name="columns"></param>
void UpdateQueue<T>(Expression<Func<T, T>> columns, Expression<Func<T, bool>> whereExpression) where T : class, new();
/// <summary>
/// 得到一个更加灵活的查询对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="T2"></typeparam>
/// <typeparam name="T3"></typeparam>
/// <typeparam name="T4"></typeparam>
/// <param name="joinExpression"></param>
/// <returns></returns>
ISugarQueryable<T, T2, T3, T4> Queryable<T, T2, T3, T4>(Expression<Func<T, T2, T3, T4, object[]>> joinExpression);
/// <summary>
/// 得到一个更加灵活的查询对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="T2"></typeparam>
/// <typeparam name="T3"></typeparam>
/// <typeparam name="T4"></typeparam>
/// <typeparam name="T5"></typeparam>
/// <param name="joinExpression"></param>
/// <returns></returns>
ISugarQueryable<T, T2, T3, T4, T5> Queryable<T, T2, T3, T4, T5>(Expression<Func<T, T2, T3, T4, T5, object[]>> joinExpression);
/// <summary>
/// 按照列添加
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <param name="columns"></param>
void AddQueue<T>(T t, Expression<Func<T, object>> columns) where T : class, new();
/// <summary>
/// 加入数据库队列
/// </summary>
/// <param name="instance"></param>
/// <param name="tablename"></param>
void AddQueue<T>(T instance, string tablename = null) where T : class, new();
/// <summary>
/// 得到当前的sql对象hashcode
/// </summary>
/// <returns></returns>
int GetSqlHashCode();
/// <summary>
/// 修改实体
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
void Update<T>(T t) where T : class, new();
/// <summary>
/// 根据表达式删除
/// </summary>
/// <param name="whereExpression"></param>
int Delete<T>(Expression<Func<T, bool>> whereExpression) where T : class, new();
/// <summary>
/// Union表操作
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="queryables"></param>
/// <returns></returns>
ISugarQueryable<T> UnionAll<T>(params ISugarQueryable<T>[] queryables) where T : class, new();
/// <summary>
/// 得到一个更加灵活的查询对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="shortName"></param>
/// <returns></returns>
ISugarQueryable<T> Queryable<T>(string shortName = "") where T : class, new();
/// <summary>
/// 一起执行提交
/// </summary>
int SaveQueue();
/// <summary>
/// 按照列添加
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <param name="columns"></param>
void AddQueue<T>(T t) where T : class, new();
/// <summary>
/// 按照列添加
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
void Add<T>(T t) where T : class, new();
/// <summary>
/// 批量添加
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
void Add<T>(List<T> t) where T : class, new();
/// <summary>
/// 得到一个更加灵活的查询对象
/// </summary>
/// <returns></returns>
ISugarQueryable<T, T2> Queryable<T, T2>(Expression<Func<T, T2, object[]>> joinExpression);
/// <summary>
/// 批量添加
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
void AddQueue<T>(List<T> list) where T : class, new();
/// <summary>
/// 按字段修改,满足条件的数据,批量修改的补充。
/// 例子Update(it => new WorkProcess { Remark = "测试批量修改",SystemType = 0 },p => p.WorkProcessId ==Guid.Parse("7BDDBBD3-B1CD-4C25-93BA-D7BF22032108"));
/// </summary>
/// <param name="columns">要修改的列</param>
/// <param name="whereExpression">要修改的条件</param>
int Update<T>(Expression<Func<T, T>> columns, Expression<Func<T, bool>> whereExpression) where T : class, new();
/// <summary>
/// 添加修改的队列
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
void UpdateQueue<T>(T t) where T : class, new();
/// <summary>
/// 得到数量
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="predicate"></param>
/// <returns></returns>
int Count<T>(Expression<Func<T, bool>> predicate);
/// <summary>
/// 得到一个更加灵活的查询对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="T2"></typeparam>
/// <typeparam name="T3"></typeparam>
/// <param name="joinExpression"></param>
/// <returns></returns>
ISugarQueryable<T, T2, T3> Queryable<T, T2, T3>(Expression<Func<T, T2, T3, object[]>> joinExpression);
/// <summary>
/// 判断是否存在
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="whereExpression"></param>
/// <returns></returns>
bool IsExist<T>(Expression<Func<T, bool>> whereExpression);
/// <summary>
/// 添加一个委托的方式执行事务
/// </summary>
/// <param name="action"></param>
void UseTran(Action action);
/// <summary>
/// 按字段批量修改一组对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="updateObjs"></param>
/// <param name="columns"></param>
int Update<T>(List<T> updateObjs) where T : class, new();
/// <summary>
/// 按字段批量修改一组对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="updateObjs"></param>
/// <param name="columns"></param>
void UpdateQueue<T>(List<T> updateObjs, Expression<Func<T, object>> columns) where T : class, new();
/// <summary>
/// 根据表达式删除
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="whereExpression"></param>
void DeleteQueue<T>(Expression<Func<T, bool>> whereExpression) where T : class, new();
/// <summary>
/// 清空表数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
void TruncateTable<T>() where T : class, new();
/// <summary>
/// 清除数据库队列
/// </summary>
void ClearQueue();
/// <summary>
/// 修改的队列
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
void UpdateQueue<T>(List<T> list) where T:class,new();
/// <summary>
/// 禁止参数转换成NVarchar
/// </summary>
void DisableNVarchar();
/// <summary>
/// 启用参数转换成NVarchar
/// </summary>
void EnableNVarchar();
}
}