using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GenericRepository{ public interface IRepositoryBase{ /// /// Liefert ein einzelnes Model-Objekt vom Typ M zurück, /// welches anhand dem übergebenen PrimaryKey geladen wird. /// /// Type des PrimaryKey /// Wert des PrimaryKey /// gefundenes Model-Objekt, ansonsten null M GetSingle

(P pkValue); ///

/// Fügt das Model-Objekt zur Datenbank hinzu (Insert) /// /// zu speicherndes Model-Object void Add(M entity); /// /// Löscht das Model-Objekt aus der Datenbank (Delete) /// /// zu löschendes Model-Object void Delete(M entity); /// /// Aktualisiert das Model-Objekt in der Datenbank hinzu (Update) /// /// zu aktualisierendes Model-Object void Update(M entity); /// /// Gibt eine Liste von Model-Objekten vom Typ M zurück, /// die gemäss der WhereBedingung geladen wurden. Die Werte der /// Where-Bedingung können als separat übergeben werden, /// damit diese für PreparedStatements verwendet werden können. /// (Verhinderung von SQL-Injection) /// /// WhereBedingung als string /// z.B. "NetPrice > @netPrice and Active = @active and Description like @desc /// Parameter-Werte für die Wherebedingung /// bspw: {{"netPrice", 10.5}, {"active", true}, {"desc", "Wolle%"}} /// List GetAll(string whereCondition, Dictionary parameterValues); /// /// Gibt eine Liste aller in der DB vorhandenen Model-Objekte vom Typ M zurück /// /// List GetAll(); /// /// Zählt in der Datenbank die Anzahl Model-Objekte vom Typ M, die der /// Where-Bedingung entsprechen /// /// WhereBedingung als string /// z.B. "NetPrice > @netPrice and Active = @active and Description like @desc /// Parameter-Werte für die Wherebedingung /// bspw: {{"netPrice", 10.5}, {"active", true}, {"desc", "Wolle%"}} /// long Count(string whereCondition, Dictionary parameterValues); /// /// Zählt alle Model-Objekte vom Typ M /// /// long Count(); /// /// Gibt den Tabellennamen zurück, auf die sich das Repository bezieht /// string TableName { get; } } }