using DataLayer; using LibationFileManager; using Microsoft.EntityFrameworkCore; using System.Collections.Generic; namespace ApplicationServices { public static class DbContexts { /// Use for fully functional context, incl. SaveChanges(). For query-only, use the other method public static LibationContext GetContext() => InstanceQueue.WaitToCreateInstance(() => { var context = !string.IsNullOrEmpty(Configuration.Instance.PostgresqlConnectionString) ? LibationContextFactory.CreatePostgres(Configuration.Instance.PostgresqlConnectionString) : LibationContextFactory.CreateSqlite(SqliteStorage.ConnectionString); context.Database.Migrate(); return context; }); /// Use for full library querying. No lazy loading public static List GetLibrary_Flat_NoTracking(bool includeParents = false) { using var context = GetContext(); return context.GetLibrary_Flat_NoTracking(includeParents); } } }