/// <summary> /// Liefert eine Katze und die Box, in der sie eingeschlossen ist, anhand des Namens der Katze. /// </summary> /// <param name="name"></param> /// <returns></returns> public Task <Cat> GetCatByName(string name) { Helper.PrintBlock(string.Format("Die Katze wird in der Datenbank anhand des Namens {0} gesucht.", name)); // Linq Expression zum Suchen der Entität in der Datenbank. return(Repository.SingleAsync(b => b.Name == name)); }
/// <summary> /// Liefert eine Katze und die Box, in der sie eingeschlossen ist, anhand der Id der Katze. /// </summary> /// <param name="id"></param> /// <returns></returns> public Task <Cat> GetCatById(int id) { Helper.PrintBlock(string.Format("Die Katze wird in der Datenbank anhand der Id {0} gesucht.", id.ToString())); // Linq Expression zum Suchen der Entität in der Datenbank. return(Repository.SingleAsync(b => b.CatId == id)); }
/// <summary> /// Liefert eine Box, mit eingeschlossener Katze, anhand der Farbe der Box. /// </summary> /// <param name="id"></param> /// <returns></returns> public Task <Box> GetBoxByColor(string color) { Helper.PrintBlock(string.Format("Die Box wird in der Datenbank anhand der Farbe {0} gesucht.", color)); // Linq Expression zum Suchen der Entität in der Datenbank. return(Repository.SingleAsync(b => b.Color == color)); }
/// <summary> /// Überführt alle geänderten Entitäten im Context in die Datenbank /// </summary> /// <returns></returns> public async Task <int> SaveChangesAsync() { // Messung der Dauer der Übertragung in die Datenbank Stopwatch timer = Stopwatch.StartNew(); // Wir zählen alle übertragenen Entitäten. var count = await _schroedingerCtx.SaveChangesAsync(); timer.Stop(); Helper.PrintBlock(string.Format("{0} Entitäten wurden in {1} Sekunden vom Context in die Datenbank übertragen und persistiert.", count.ToString(), timer.Elapsed.TotalSeconds)); return(count); }
static async Task Main(string[] args) { // Ein neuer Context wird erstellt. _schroedingerCtx = new SchroedingerContext(); Helper.PrintBlock("Bitte warten, der Datenbank-Context wird erstellt."); // Vor jedem Start wird sichergestellt, das der Context auf der Datenbank vorhanden ist. await _schroedingerCtx.Database.EnsureDeletedAsync(); await _schroedingerCtx.Database.EnsureCreatedAsync(); Helper.PrintBlock("Der Datenbank-Context wurde erfolgreich erstellt."); // Initialisierung der Services zur Interaktion mit dem Context. // Der CatService wird nicht verwendet, kann aber Katzen anhand des Namens liefern. _catService = new CatService(_schroedingerCtx); _boxService = new BoxService(_schroedingerCtx); // Wir fragen nach der Farbe. var boxColor = GetBoxColor(); // Wir fragen nach dem Namen. var catName = GetCatName(); // Wir erzeugen direkt im Methodenkörper ein geschachteltes Box-Objekt und fügen es dem Context hinzu. await _boxService.AddEntityAsync( new Box { BoxId = 1, Color = boxColor, Cat = new Cat { CatId = 1, Name = catName, IsAlive = new Random().Next(100) < 50 ? true : false } }); var count = await _boxService.SaveChangesAsync(); OpenBox(boxColor); Console.ReadLine(); }
public Task AddEntityAsync(TEntity entity) { Helper.PrintBlock(string.Format("Das Objekt {0} wurde dem Context hinzugefügt.", entity.ToString())); return(Repository.AddAsync(entity)); }