145 lines
3.5 KiB
C#
145 lines
3.5 KiB
C#
|
using System;
|
|||
|
|
|||
|
namespace Easy4net.CustomAttributes
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 数据库表字段特性
|
|||
|
/// </summary>
|
|||
|
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property,
|
|||
|
AllowMultiple = false, Inherited = false)]
|
|||
|
public class ColumnAttribute : Attribute
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 字段信息 例如:varchar(255) default ''
|
|||
|
/// </summary>
|
|||
|
public string TypeInfo { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 是否为主键
|
|||
|
/// </summary>
|
|||
|
public bool PrimaryKey { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 字段名
|
|||
|
/// </summary>
|
|||
|
private string _Name = string.Empty;
|
|||
|
/// <summary>
|
|||
|
/// 是否唯一
|
|||
|
/// </summary>
|
|||
|
private bool _IsUnique = false;
|
|||
|
/// <summary>
|
|||
|
/// 是否允许为空
|
|||
|
/// </summary>
|
|||
|
private bool _IsNull = true;
|
|||
|
/// <summary>
|
|||
|
/// 是否插入到表中
|
|||
|
/// </summary>
|
|||
|
private bool _IsInsert = true;
|
|||
|
/// <summary>
|
|||
|
/// 是否修改到表中
|
|||
|
/// </summary>
|
|||
|
private bool _IsUpdate = true;
|
|||
|
/// <summary>
|
|||
|
/// 在所有操作中是否忽略此字段
|
|||
|
/// </summary>
|
|||
|
private bool _Ignore = false;
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 表字段名
|
|||
|
/// </summary>
|
|||
|
public string Name
|
|||
|
{
|
|||
|
get { return _Name; }
|
|||
|
set { _Name = value; }
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 是否是唯一的,默认为否
|
|||
|
/// </summary>
|
|||
|
public bool IsUnique
|
|||
|
{
|
|||
|
get { return _IsUnique; }
|
|||
|
set { _IsUnique = value; }
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 此字段是否允许为空,默认允许为空
|
|||
|
/// </summary>
|
|||
|
public bool IsNull
|
|||
|
{
|
|||
|
get { return _IsNull; }
|
|||
|
set { _IsNull = value; }
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 在执行插入操作时此是否插入此字段值,默认为插入
|
|||
|
/// </summary>
|
|||
|
public bool IsInsert
|
|||
|
{
|
|||
|
get { return _IsInsert; }
|
|||
|
set { _IsInsert = value; }
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 在执行更新操作时是否更新此字段值,默认为更新
|
|||
|
/// </summary>
|
|||
|
public bool IsUpdate
|
|||
|
{
|
|||
|
get { return _IsUpdate; }
|
|||
|
set { _IsUpdate = value; }
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 在执行所有操作时是否忽略此字段,默认不忽略
|
|||
|
/// </summary>
|
|||
|
public bool Ignore
|
|||
|
{
|
|||
|
get { return _Ignore; }
|
|||
|
set { _Ignore = value; }
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 创建一个空的字段特性
|
|||
|
/// </summary>
|
|||
|
public ColumnAttribute()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 创建一个指定字段名的字段特性
|
|||
|
/// </summary>
|
|||
|
/// <param name="aName">字段名</param>
|
|||
|
public ColumnAttribute(string aName)
|
|||
|
: this()
|
|||
|
{
|
|||
|
this.Name = aName;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 创建一个制定字段名的字段特性
|
|||
|
/// </summary>
|
|||
|
/// <param name="aName">字段名</param>
|
|||
|
/// <param name="aIgnore">在执行数据操作时是否忽略此字段</param>
|
|||
|
public ColumnAttribute(string aName, bool aIgnore)
|
|||
|
: this(aName)
|
|||
|
{
|
|||
|
this.Ignore = aIgnore;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 创建一个制定字段名的字段特性
|
|||
|
/// </summary>
|
|||
|
/// <param name="aName">字段名</param>
|
|||
|
/// <param name="aInsert">此字段是否参与插入操作</param>
|
|||
|
/// <param name="aUpdate">此字段是否参与更新操作</param>
|
|||
|
public ColumnAttribute(string aName, bool aInsert, bool aUpdate)
|
|||
|
: this(aName)
|
|||
|
{
|
|||
|
this.IsInsert = aInsert;
|
|||
|
this.IsUpdate = aUpdate;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|