Files
MIESYSTEM/MicroORM/Interfaces/IRepository.cs
2025-12-26 22:27:20 -06:00

20 lines
912 B
C#

using System.Data;
using System.Linq.Expressions;
namespace MicroORM.Interfaces;
public interface IRepository<T>
{
Task<int> InsertAsync<T>(T entity, IDbConnection? connection = null, IDbTransaction? transaction = null);
Task<bool> UpdateAsync<T>(T entity, IDbConnection? connection = null, IDbTransaction? transaction = null);
Task<T?> GetByIdAsync(object id);
Task<IEnumerable<T>> GetAllAsync(Expression<Func<T, bool>>? filter = null,
Expression<Func<T, object>>? orderBy = null, bool descending = false);
Task<bool> DeleteAsync(object id);
Task<int> SaveAsync<T>(T entity);
Task<IReadOnlyList<int>> SaveAsyncList<T>(IEnumerable<T> entities);
Task<T?> QuerySingleAsync<T>(string sql, object? parameters = null);
Task<IEnumerable<T>> QueryAsync<T>(string sql, object? parameters = null);
Task<T?> ExecuteScalarAsync<T>(string sql, object? parameters = null);
}