using SparkClient.Model.Entity.Base; using System.Reflection; using System.Runtime.CompilerServices; namespace SparkClient.Model.Entity; /// /// 系统设置实体 /// public class MethodConfigEntity : BaseEntity { public static readonly new string TableName = "METHOD_CONFIG"; [DbField("GUID")] public Guid GUID { get; set; } /// /// json内容 /// [DbField("JSON")] public string Json { get; set; } /// /// Json排序 /// [DbField("JSON_ORDER")] public int JsonOrder { get; set; } private static Dictionary GetFieldMappings() { var properties = typeof(MethodConfigEntity).GetProperties(BindingFlags.Public | BindingFlags.Instance); return properties .Where(p => Attribute.IsDefined(p, typeof(DbFieldAttribute))) .ToDictionary( p => p.Name, p => ((DbFieldAttribute)p.GetCustomAttribute(typeof(DbFieldAttribute))).FieldName ); } // 生成 Insert 语句 public string GenerateInsertSQL() { var mappings = GetFieldMappings(); var columns = string.Join(", ", mappings.Values); var values = string.Join(", ", mappings.Keys.Select(k => $"@{k}")); return $"INSERT INTO {TableName} ({columns}) VALUES ({values});"; } // 生成 Update 语句 public string GenerateUpdateSQL(Dictionary fieldsToUpdate = null) { if (fieldsToUpdate == null || fieldsToUpdate.Count == 0) { // 默认根据 ID 更新所有字段 var mappings = GetFieldMappings(); var setClause = string.Join(", ", mappings.Values.Select(f => $"{f} = @{f}")); return $"UPDATE {TableName} SET {setClause} WHERE GUID = " + GUID.ToString() + ";"; } else { // 根据传入的字段更新 var setClause = string.Join(", ", fieldsToUpdate.Keys.Select(f => $"{f} = @{f}")); return $"UPDATE {TableName} SET {setClause} WHERE GUID = " + GUID.ToString() + ";"; } } // 生成 Delete 语句 public string GenerateDeleteSQL(Dictionary conditions = null) { if (conditions == null || conditions.Count == 0) { // 默认根据 ID 删除 return $"DELETE FROM {TableName} WHERE GUID =" + GUID.ToString() + ";"; } else { // 根据传入条件删除 var whereClause = string.Join(" AND ", conditions.Keys.Select(f => $"{f} = @{f}")); return $"DELETE FROM {TableName} WHERE {whereClause};"; } } }