server-master/srcs/PhoenixLib.DAL.EFCore.PGSQL/Extensions/DatabaseClearExtensions.cs
2026-02-10 18:21:30 +01:00

23 lines
No EOL
758 B
C#

// WingsEmu
//
// Developed by NosWings Team
using System.ComponentModel.DataAnnotations.Schema;
using System.Reflection;
using Microsoft.EntityFrameworkCore;
namespace PhoenixLib.DAL.EFCore.PGSQL.Extensions
{
public static class DatabaseClearExtensions
{
public static void ResetTable<T>(this DbContext dbContext, DbSet<T> dbSet) where T : class
{
dbSet.DeleteFromQuery();
dbContext.Database.ExecuteSqlRaw(CleanTable<T>());
}
private static string CleanTable<T>() =>
@$"ALTER SEQUENCE ""{((TableAttribute)typeof(T).GetCustomAttribute(typeof(TableAttribute))).Schema}"".""{((TableAttribute)typeof(T).GetCustomAttribute(typeof(TableAttribute))).Name}_Id_seq"" RESTART;";
}
}