OBJ.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using SqlSugar;
  2. using System;
  3. using System.ComponentModel.DataAnnotations.Schema;
  4. namespace WMS.Core.WcsTask
  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. public virtual int ID { get; set; }
  17. /// <summary>
  18. /// 是否可用
  19. /// </summary>
  20. [SugarColumn(ColumnDescription = "是否可用")]
  21. public bool ENABLED { get; set; } = true;
  22. /// <summary>
  23. /// 更新用户
  24. /// 仅记录用户ID
  25. /// </summary>
  26. [SugarColumn(ColumnDescription = "更新用户", Length = 50)]
  27. public string UPDATEUSER { get; set; }
  28. /// <summary>
  29. /// 更新时间
  30. /// </summary>
  31. [SugarColumn(ColumnDescription = "更新时间")]
  32. public DateTime UPDATETIME { get; set; } = DateTime.Now;
  33. /// <summary>
  34. /// 版本号
  35. /// </summary>
  36. [SugarColumn(ColumnDescription = "版本号", ColumnDataType = "timestamp", IsNullable = true, IsOnlyIgnoreInsert = true, IsOnlyIgnoreUpdate = true)]
  37. public byte[] VER { get; set; }
  38. /// <summary>
  39. ///
  40. /// </summary>
  41. /// <typeparam name="T"></typeparam>
  42. /// <returns></returns>
  43. public T Copy<T>() where T : OBJ
  44. {
  45. var instance = Activator.CreateInstance<T>();
  46. foreach (var property in GetType().GetProperties())
  47. {
  48. var obj = property.GetValue(this);
  49. typeof(T).GetProperty(property.Name)?.SetValue(instance, obj);
  50. }
  51. return instance;
  52. }
  53. }
  54. }