kreta/Framework/Entities/IEntityDataAccessor.cs
2024-03-13 00:33:46 +01:00

62 lines
2.7 KiB
C#

using System.Collections.Generic;
using Kreta.Framework.Collections;
namespace Kreta.Framework.Entities
{
/// <summary>
/// Entitások adatbázisműveleteit végző objektumának felülete.
/// </summary>
public interface IEntityDataAccessor
{
/// <summary>
/// Betölti egy entitás állapotát az adatbázisból.
/// </summary>
/// <param name="entity">A betöltendő entitás</param>
/// <param name="entityId">Az entitás adatbázisbeli azonosítója</param>
/// <returns>True, ha sikeres; egyébként False</returns>
bool LoadEntity(Entity entity, int entityId);
/// <summary>
/// Oszlopszűrten beltölti egy entitás állapotát az adatbázisból
/// </summary>
/// <param name="entity">A betöltendő entitás</param>
/// <param name="entityId">Az entitás adatbázisbeli azonosítója</param>
/// <param name="columnFilterMode">A szűrés módja, megengedő vagy tiltó</param>
/// <param name="columns">A szűrendő oszlopok felsorolása</param>
/// <returns>True, ha sikeres; egyébként False</returns>
bool FilteredLoadEntity(Entity entity, int entityId, ColumnFilterMode columnFilterMode, IEnumerable<string> columns);
/// <summary>
/// Betölt egy entitás listát a megadott szűrő feltétellel.
/// </summary>
/// <param name="collection">A feltöltendő lista</param>
/// <param name="filter">A szűrő SQL töredék</param>
void LoadWithFilter(IEntityCollection collection, string filter, Dictionary<string, object> commandParameters);
/// <summary>
/// Létrehoz egy új entitás példányt az adatbázisban.
/// </summary>
/// <param name="entity">A létrehozandó entitás</param>
void InsertEntity(Entity entity);
/// <summary>
/// Módosít egy entitás példányt az adatbázisban.
/// </summary>
/// <param name="entity">A módosítandó entitás</param>
/// <returns>True, ha sikeres; egyébként false</returns>
bool UpdateEntity(Entity entity);
/// <summary>
/// Módosítja egy entitás példány asszociációs kapcsolómezőit az adatbázisban.
/// </summary>
/// <param name="entity">A módosítandó entitás</param>
/// <returns>True, ha sikeres; egyébként false</returns>
bool UpdateAssociations(Entity entity);
/// <summary>
/// Töröl egy entitás példányt az adatbázisból.
/// </summary>
/// <param name="entity">A törlendő entitás</param>
void DeleteEntity(Entity entity, bool logikai = true);
}
}