OBJ.cs 1.9 KB

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