OBJ.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using SqlSugar;
  2. using System;
  3. using System.ComponentModel.DataAnnotations;
  4. using System.ComponentModel.DataAnnotations.Schema;
  5. namespace WCS.Entity
  6. {
  7. /// <summary>
  8. /// 实体类通用基础类
  9. /// </summary>
  10. [Serializable]
  11. public abstract class OBJ
  12. {
  13. /// <summary>
  14. /// ID
  15. /// </summary>
  16. [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "ID")]
  17. [Column(Order = 0)]
  18. public virtual int ID { get; set; }
  19. /// <summary>
  20. /// 是否可用
  21. /// </summary>
  22. [SugarColumn(ColumnDescription = "是否可用")]
  23. public bool ENABLED { get; set; } = true;
  24. /// <summary>
  25. /// 更新用户
  26. /// </summary>
  27. [SugarColumn(ColumnDescription = "更新用户", Length = 50, IsNullable = true)]
  28. public string UPDATEUSER { get; set; }
  29. /// <summary>
  30. /// 更新时间
  31. /// </summary>
  32. [SugarColumn(ColumnDescription = "更新时间")]
  33. public DateTime UPDATETIME { get; set; } = DateTime.Now;
  34. /// <summary>
  35. /// 版本号
  36. /// </summary>
  37. [SugarColumn(ColumnDescription = "版本号")]
  38. [Timestamp]
  39. public byte[] VER { get; set; }
  40. /// <summary>
  41. ///
  42. /// </summary>
  43. /// <typeparam name="T"></typeparam>
  44. /// <returns></returns>
  45. public T Copy<T>() where T : OBJ
  46. {
  47. var instance = Activator.CreateInstance<T>();
  48. foreach (var property in GetType().GetProperties())
  49. {
  50. var obj = property.GetValue(this);
  51. typeof(T).GetProperty(property.Name)!.SetValue(instance, obj);
  52. }
  53. return instance;
  54. }
  55. }
  56. }