From fb789411b8659faa11998475e5e46669c387cba6 Mon Sep 17 00:00:00 2001 From: Andreas Date: Tue, 23 Jun 2026 07:27:33 +0200 Subject: [PATCH] Added `Update` methods to `SQLite` service Fixed #456 --- .../Interfaces/ISqliteDatabaseService.cs | 5 +++-- .../Service/SqliteDatabaseService.cs | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/SharedMauiCoreLibrary.Database.SQLite/Interfaces/ISqliteDatabaseService.cs b/src/SharedMauiCoreLibrary.Database.SQLite/Interfaces/ISqliteDatabaseService.cs index 69732dc..bd7c9ab 100644 --- a/src/SharedMauiCoreLibrary.Database.SQLite/Interfaces/ISqliteDatabaseService.cs +++ b/src/SharedMauiCoreLibrary.Database.SQLite/Interfaces/ISqliteDatabaseService.cs @@ -1,5 +1,4 @@ -using AndreasReitberger.Shared.Core.Interfaces; -using SQLite; +using SQLite; namespace AndreasReitberger.Shared.Core.Database.Interfaces { @@ -30,6 +29,8 @@ public interface ISqliteDatabaseService : IDisposable public Task GetWithChildrenAsync(object primaryKey, bool recursive) where T : new(); public Task InsertWithChildrenAsync(T insert, bool replace = false, bool recursive = true) where T : new(); public Task InsertAllWithChildrenAsync(IList insert, bool replace = false, bool recursive = true) where T : new(); + public Task UpdateWithChildrenAsync(T insert, bool recursive = true) where T : new(); + public Task UpdateAllWithChildrenAsync(IList insert, bool recursive = true) where T : new(); public Task DeleteWithChildrenAsync(object primaryKey) where T : new(); public List? GetTableMappings(); public Task> DropAllTableAsync(); diff --git a/src/SharedMauiCoreLibrary.Database.SQLite/Service/SqliteDatabaseService.cs b/src/SharedMauiCoreLibrary.Database.SQLite/Service/SqliteDatabaseService.cs index 2132256..67a8032 100644 --- a/src/SharedMauiCoreLibrary.Database.SQLite/Service/SqliteDatabaseService.cs +++ b/src/SharedMauiCoreLibrary.Database.SQLite/Service/SqliteDatabaseService.cs @@ -120,6 +120,13 @@ public async Task DisconnectAsync() await Database.InsertAllWithChildrenAsync(insert, recursive: recursive).ConfigureAwait(false); } } + + public Task UpdateWithChildrenAsync(T insert, bool recursive = true) where T : new() + => InsertWithChildrenAsync(insert, replace: true, recursive); + + public Task UpdateAllWithChildrenAsync(IList insert, bool recursive = true) where T : new() + => InsertAllWithChildrenAsync(insert, replace: true, recursive); + public async Task DeleteWithChildrenAsync(object primaryKey) where T : new() { if (Database is not null)