diff --git a/Source/ApplicationServices/LibraryCommands.cs b/Source/ApplicationServices/LibraryCommands.cs index 5aa60340..45556dfb 100644 --- a/Source/ApplicationServices/LibraryCommands.cs +++ b/Source/ApplicationServices/LibraryCommands.cs @@ -222,7 +222,7 @@ namespace ApplicationServices { int qtyChanged = await Task.Run(() => SaveContext(context)); if (qtyChanged > 0) - await Task.Run(finalizeLibrarySizeChange); + await Task.Run(() => finalizeLibrarySizeChange(context)); return qtyChanged; } catch (Exception ex) @@ -329,7 +329,7 @@ namespace ApplicationServices // this is any changes at all to the database, not just new books if (qtyChanges > 0) - await Task.Run(() => finalizeLibrarySizeChange()); + await Task.Run(() => finalizeLibrarySizeChange(context)); logTime("importIntoDbAsync -- post finalizeLibrarySizeChange"); return newCount; @@ -378,7 +378,7 @@ namespace ApplicationServices var qtyChanges = context.SaveChanges(); if (qtyChanges > 0) - finalizeLibrarySizeChange(); + finalizeLibrarySizeChange(context); return qtyChanges; } @@ -407,7 +407,7 @@ namespace ApplicationServices var qtyChanges = context.SaveChanges(); if (qtyChanges > 0) - finalizeLibrarySizeChange(); + finalizeLibrarySizeChange(context); return qtyChanges; } @@ -432,7 +432,7 @@ namespace ApplicationServices var qtyChanges = context.SaveChanges(); if (qtyChanges > 0) - finalizeLibrarySizeChange(); + finalizeLibrarySizeChange(context); return qtyChanges; } @@ -445,9 +445,9 @@ namespace ApplicationServices #endregion // call this whenever books are added or removed from library - private static void finalizeLibrarySizeChange() + private static void finalizeLibrarySizeChange(LibationContext context) { - var library = DbContexts.GetLibrary_Flat_NoTracking(includeParents: true); + var library = context.GetLibrary_Flat_NoTracking(includeParents: true); LibrarySizeChanged?.Invoke(null, library); } diff --git a/Source/DataLayer/LibationContextFactory.cs b/Source/DataLayer/LibationContextFactory.cs index abf9b656..92f1f7d1 100644 --- a/Source/DataLayer/LibationContextFactory.cs +++ b/Source/DataLayer/LibationContextFactory.cs @@ -6,6 +6,7 @@ namespace DataLayer public class LibationContextFactory : DesignTimeDbContextFactoryBase { protected override LibationContext CreateNewInstance(DbContextOptions options) => new LibationContext(options); - protected override void UseDatabaseEngine(DbContextOptionsBuilder optionsBuilder, string connectionString) => optionsBuilder.UseSqlite(connectionString); + protected override void UseDatabaseEngine(DbContextOptionsBuilder optionsBuilder, string connectionString) + => optionsBuilder.UseSqlite(connectionString, ob => ob.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery)); } }