using Apewer; using Apewer.Internals; using System; using System.Collections; using System.Collections.Generic; using System.Reflection; namespace Apewer.Source { /// 数据库记录通用字段模型。 /// 带有 Independent 特性的模型不包含此类型声明的属性。 [Serializable] public abstract class Record : IRecord { /// 记录主键,一般使用 GUID 的字符串形式。 /// /// 注: /// 1. 默认长度为 32,需要修改长度时应该重写此属性; /// 2. 带有 Independent 特性的模型不包含此属性。 /// [Column("_key", ColumnType.NVarChar, 32)] public virtual string Key { get; set; } /// 记录的标记,Int64 类型,区分记录的状态。 /// 带有 Independent 特性的模型不包含此属性。 [Column("_flag", ColumnType.Integer)] public virtual long Flag { get; set; } /// 重置 Key 属性的值。 public virtual void ResetKey() => Key = TextUtility.Key(); /// public Record() { ResetKey(); Flag = DefaultFlag; } #region static /// 创建 Record 对象时的默认 Flag 值。 public static long DefaultFlag { get; set; } #endregion #region 运算符。 /// 从 Record 到 Boolean 的隐式转换,判断 Record 对象不为 NULL。 public static implicit operator bool(Record instance) => instance != null; #endregion } }