20230818
This commit is contained in:
72
anbs_cpdb/Interfaces/IDbEngine.cs
Normal file
72
anbs_cpdb/Interfaces/IDbEngine.cs
Normal file
@@ -0,0 +1,72 @@
|
||||
using anbs_cp.Structs;
|
||||
|
||||
namespace anbs_cp.Database.Interfaces;
|
||||
|
||||
/// <summary>
|
||||
/// Интерфейс для работы с базой данных
|
||||
/// </summary>
|
||||
public interface IDbEngine
|
||||
{
|
||||
/// <summary>
|
||||
/// Строка подключения
|
||||
/// </summary>
|
||||
string ConnectionString { get; set; }
|
||||
|
||||
#region Небезопасные методы
|
||||
|
||||
Task<bool> ExecuteAsync (string sql, object model);
|
||||
|
||||
/// <summary>
|
||||
/// Запрос на получение одной строки
|
||||
/// </summary>
|
||||
/// <typeparam name="T">Тип передаваемого значения</typeparam>
|
||||
/// <param name="sql">Запрос</param>
|
||||
/// <param name="model">Данные запроса</param>
|
||||
/// <returns>Возвращает тип <see cref="T"/> или значение по умолчанию</returns>
|
||||
Task<T> QueryRowAsync<T> (string sql, object model);
|
||||
|
||||
/// <summary>
|
||||
/// Запрос
|
||||
/// </summary>
|
||||
/// <typeparam name="T">Тип передаваемого значения</typeparam>
|
||||
/// <param name="sql">Запрос</param>
|
||||
/// <param name="model">Данные запроса</param>
|
||||
/// <returns>Возвращает массив типа <see cref="T"/> или значение по умолчанию</returns>
|
||||
Task<IEnumerable<T>> QueryAsync<T> (string sql, object model);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Получение
|
||||
Task<IEnumerable<T>> SelectAsync<T> (string table, string[] columns, List<KeyValue<string, string>> where, string? orderBy = null);
|
||||
|
||||
Task<T> SelectRowAsync<T> (string table, List<string> columns, KeyValue<string, string> where, string? orderBy = null);
|
||||
#endregion
|
||||
|
||||
#region Вычисление числа элементов в таблице
|
||||
|
||||
Task<int> CountAsync (string table);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Добавление строки в таблицу
|
||||
|
||||
Task<TPit> InsertAsync<T, TPit> (string table, T entity, KeyValue<string, TPit> primaryIndex);
|
||||
|
||||
Task<bool> InsertUpdateAsync<T> (string table, T entity);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Обновление строки в таблице
|
||||
|
||||
Task<bool> UpdateAsync<T> (string table, T entity, KeyValue<string, string> where);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Удаление строк
|
||||
|
||||
Task<bool> DeleteAsync<T> (string table, KeyValue<string, string> where);
|
||||
|
||||
Task<bool> DeleteRowAsync<T> (string table, KeyValue<string, string> where);
|
||||
|
||||
#endregion
|
||||
}
|
Reference in New Issue
Block a user