using Microsoft.EntityFrameworkCore; namespace Rs_system.Data; public static class DbContextOptimizationExtensions { public static IQueryable AsNoTrackingWithIdentityResolution(this IQueryable query) where T : class { return query.AsNoTrackingWithIdentityResolution(); } public static IQueryable AsSplitQuery(this IQueryable query) where T : class { return query.AsSplitQuery(); } public static IQueryable TagWith(this IQueryable query, string comment) where T : class { return query.TagWith(comment); } public static async Task> ToListWithCountAsync(this IQueryable query, CancellationToken cancellationToken = default) { var result = await query.ToListAsync(cancellationToken); return result; } public static async Task FirstOrDefaultNoTrackingAsync(this IQueryable query, CancellationToken cancellationToken = default) where T : class { return await query.AsNoTracking().FirstOrDefaultAsync(cancellationToken); } public static async Task AnyNoTrackingAsync(this IQueryable query, CancellationToken cancellationToken = default) where T : class { return await query.AsNoTracking().AnyAsync(cancellationToken); } public static async Task CountNoTrackingAsync(this IQueryable query, CancellationToken cancellationToken = default) where T : class { return await query.AsNoTracking().CountAsync(cancellationToken); } }