using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Storage; using Npgsql.EntityFrameworkCore.PostgreSQL; using Server.System; namespace Server.SQL { public abstract class SQL : DbContext where T : class { public abstract DbSet table { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { optionsBuilder.UseNpgsql(STATICS.SQL_URL); // 다른 옵션들을 추가할 수 있습니다. } } public void Insert(T newData) { table.Add(newData); SaveChanges(); } public void Insert(List newData) { table.AddRange(newData); SaveChanges(); } // Update 예시 // 각자 상황에 맞게 작성해서 사용할것 //public void Update(string column, string data) //{ // var existingData = table.FirstOrDefault(data => data.name == "example"); // if (existingData != null) // { // existingData.data = "updated data"; // dbContext.SaveChanges(); // } //} public List Select() { return table.ToList(); } // Select 예시 // 각자 상황에 맞게 작성해서 사용할것 //public DynamicData GetDataByName(string name) //{ // return table.SingleOrDefault(data => data.name == name); //} /// /// 특정 상황에 트렌젝션 롤백을 해야할때 사용 /// public IDbContextTransaction Transaction { get { return Database.BeginTransaction(); } } } }