parent
64f3935692
commit
cba4f6fce0
3 changed files with 113 additions and 1 deletions
@ -0,0 +1,74 @@ |
||||
using System.Reflection; |
||||
|
||||
namespace SparkClient.Model.Entity.Base; |
||||
|
||||
public abstract class BaseEntity |
||||
{ |
||||
public Guid GUID { get; set; } |
||||
public static string TableName => throw new NotImplementedException("Table name is not implemented."); |
||||
// 获取字段映射的实际名称 |
||||
private static Dictionary<string, string> GetFieldMappings() |
||||
{ |
||||
var properties = typeof(BaseEntity).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<string, object> 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 id = @id;"; |
||||
} |
||||
else |
||||
{ |
||||
// 根据传入的字段更新 |
||||
var setClause = string.Join(", ", fieldsToUpdate.Keys.Select(f => $"{f} = @{f}")); |
||||
return $"UPDATE {TableName} SET {setClause} WHERE id = @id;"; |
||||
} |
||||
} |
||||
|
||||
// 生成 Delete 语句 |
||||
public string GenerateDeleteSQL(Dictionary<string, object> conditions = null) |
||||
{ |
||||
if (conditions == null || conditions.Count == 0) |
||||
{ |
||||
// 默认根据 ID 删除 |
||||
return $"DELETE FROM {TableName} WHERE id = @id;"; |
||||
} |
||||
else |
||||
{ |
||||
// 根据传入条件删除 |
||||
var whereClause = string.Join(" AND ", conditions.Keys.Select(f => $"{f} = @{f}")); |
||||
return $"DELETE FROM {TableName} WHERE {whereClause};"; |
||||
} |
||||
} |
||||
} |
||||
|
||||
[AttributeUsage(AttributeTargets.Property)] |
||||
public class DbFieldAttribute : Attribute |
||||
{ |
||||
public string FieldName { get; } |
||||
|
||||
public DbFieldAttribute(string fieldName) |
||||
{ |
||||
FieldName = fieldName; |
||||
} |
||||
} |
@ -0,0 +1,31 @@ |
||||
using SparkClient.Model.Entity.Base; |
||||
|
||||
namespace SparkClient.Model.Entity; |
||||
|
||||
/// <summary> |
||||
/// 系统设置实体 |
||||
/// </summary> |
||||
|
||||
public class SystemSettingEntity : BaseEntity |
||||
{ |
||||
public static string TableName = "SYSTEM_SETTING"; |
||||
/// <summary> |
||||
/// 设置编号 |
||||
/// </summary> |
||||
[DbField("SETID")] |
||||
public string SetId { get; set; } |
||||
/// <summary> |
||||
/// 设置名称 |
||||
/// </summary> |
||||
[DbField("NAME")] |
||||
public string SetName { get; set; } |
||||
/// <summary> |
||||
/// 设置值 |
||||
/// </summary> |
||||
[DbField("VALUE")] |
||||
public string SetValue { get; set; } |
||||
|
||||
|
||||
} |
||||
|
||||
|
Loading…
Reference in new issue