You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.8 KiB
56 lines
1.8 KiB
using Apewer;
|
|
using Apewer.Internals;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Reflection;
|
|
|
|
namespace Apewer.Source
|
|
{
|
|
|
|
/// <summary>数据库记录通用字段模型。</summary>
|
|
/// <remarks>带有 Independent 特性的模型不包含此类型声明的属性。</remarks>
|
|
[Serializable]
|
|
public abstract class Record : IRecord
|
|
{
|
|
|
|
/// <summary>记录主键,一般使用 GUID 的字符串形式。</summary>
|
|
/// <remarks>
|
|
/// <para>注:</para>
|
|
/// <para>1. 默认长度为 32,需要修改长度时应该重写此属性;</para>
|
|
/// <para>2. 带有 Independent 特性的模型不包含此属性。</para>
|
|
/// </remarks>
|
|
[Column("_key", ColumnType.NVarChar, 32)]
|
|
public virtual string Key { get; set; }
|
|
|
|
/// <summary>记录的标记,Int64 类型,区分记录的状态。</summary>
|
|
/// <remarks>带有 Independent 特性的模型不包含此属性。</remarks>
|
|
[Column("_flag", ColumnType.Integer)]
|
|
public virtual long Flag { get; set; }
|
|
|
|
/// <summary>重置 Key 属性的值。</summary>
|
|
public virtual void ResetKey() => Key = TextUtility.Key();
|
|
|
|
/// <summary></summary>
|
|
public Record()
|
|
{
|
|
ResetKey();
|
|
Flag = DefaultFlag;
|
|
}
|
|
|
|
#region static
|
|
|
|
/// <summary>创建 Record 对象时的默认 Flag 值。</summary>
|
|
public static long DefaultFlag { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region 运算符。
|
|
|
|
/// <summary>从 Record 到 Boolean 的隐式转换,判断 Record 对象不为 NULL。</summary>
|
|
public static implicit operator bool(Record instance) => instance != null;
|
|
|
|
#endregion
|
|
}
|
|
|
|
}
|
|
|