75 lines
3.7 KiB
C#
75 lines
3.7 KiB
C#
using System.Collections.Generic;
|
|
using Kreta.Framework.Collections.Generic;
|
|
|
|
namespace Kreta.Framework.Entities.Generic
|
|
{
|
|
/// <summary>
|
|
/// Entitások adatbázisműveleteit végző objektumának felülete.
|
|
/// </summary>
|
|
public interface IEntityDataAccessor<EntityType>
|
|
where EntityType : Kreta.Framework.Entities.Entity
|
|
{
|
|
/// <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(EntityType 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(EntityType 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>
|
|
/// <param name="commandParameters">a szűrőben megadott paraméterek commandBinding atalakitasa</param>
|
|
void LoadWithFilter(IEntityCollection<EntityType> collection, string filter, Dictionary<string, object> commandParameters);
|
|
|
|
/// <summary>
|
|
/// Oszlopszűrten 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>
|
|
/// <param name="columnFilterMode">A szűrés módja, megengedő vagy tiltó</param>
|
|
/// <param name="columns">A szűrendő oszlopok felsorolása</param>
|
|
/// <param name="commandParameters">a szűrőben megadott paraméterek commandBinding atalakitasa</param>
|
|
void LoadWithFilter(IEntityCollection<EntityType> collection, string filter, ColumnFilterMode columnFilterMode, IEnumerable<string> columns, 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(EntityType 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(EntityType 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(EntityType 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>
|
|
/// <param name="logikai">Logikai törlés (Archiv flag)</param>
|
|
void DeleteEntity(EntityType entity, bool logikai = true);
|
|
}
|
|
}
|