ORM_FieldAttribute类详解:字段特性定义,框架内核根据此特性自动生成SQL脚本
作者:C/S框架网|www.cscode.ne  发布日期:2020/02/21 02:20:04
  ORM_FieldAttribute类详解:字段特性定义,框架内核根据此特性自动生成SQL脚本

ORM_FieldAttribute类详解:字段特性定义,框架内核根据此特性自动生成SQL脚本-csframework_知识库文档

C# Code:

/// <summary>
/// 字段特性定义,根据参数自动生成SQL脚本。
/// </summary>
public class ORM_FieldAttribute : Attribute
{
    
private DbType _type; //数据类型
    
private int _size; //字段长度
    
private bool _isLookup;//是否是视图或Lookup字段
    
private bool _isAddOrUpdate;//是否需要更新的字段
    
private bool _isPrimaryKey; //是否主键字段 isid/ 32bit string
    
private bool _isForeignKey;//是否外键字段 isid /32bit string
    
private bool _isDocFieldName;//是否单据号码
    

    
/// <summary>
    
/// SqlDbType数据类型
    
/// </summary>
    
public DbType Type { get { return _type; } }
    
    
/// <summary>
    
/// 字段长度
    
/// </summary>
    
public int Size { get { return _size; } }
    
    
/// <summary>
    
/// 是否视图或Lookup参照字段(参照字段不能新增和修改)
    
/// </summary>
    
public bool IsLookup { get { return _isLookup; } }
    
    
/// <summary>
    
/// 是否更新字段
    
/// </summary>
    
public bool IsAddOrUpdate { get { return _isAddOrUpdate; } }
    
    
/// <summary>
    
/// 是否主键字段
    
/// </summary>
    
public bool IsPrimaryKey { get { return _isPrimaryKey; } }
    
    
/// <summary>
    
/// 是否外键字段
    
/// </summary>
    
public bool IsForeignKey { get { return _isForeignKey; } }
    
    
/// <summary>
    
/// 是否单据号码
    
/// </summary>
    
public bool IsDocFieldName { get { return _isDocFieldName; } }
    
    
/// <summary>
    
/// 构造器
    
/// </summary>
    
/// <param name="type">DbType数据类型</param>
    
/// <param name="size">字段长度</param>
    
/// <param name="islookup">是否是视图或Lookup字段</param>
    
/// <param name="isAddorUpdate">是否需要更新的字段</param>
    
/// <param name="isPrimaryKey">是否主键字段</param>
    
/// <param name="isForeignKey">是否外键字段</param>
    
/// <param name="isDocFieldName">是否单据号码</param>
    
public ORM_FieldAttribute(DbType type, int size,
    
bool islookup, bool isAddorUpdate, bool isPrimaryKey,
    
bool isForeignKey, bool isDocFieldName)
    {
        _type
= type;
        _size
= size;
        _isLookup
= islookup;
        _isAddOrUpdate
= isAddorUpdate;
        _isPrimaryKey
= isPrimaryKey;
        _isForeignKey
= isForeignKey;
        _isDocFieldName
= isDocFieldName;
    }
    
}

//来源:C/S框架网(www.csframework.com) QQ:23404761


ORM_FieldAttribute类详解


isAddorUpdate:
isAddorUpdate属性是指当前字段是否需要更新,True:生成的SQL语句包含此字段,反之亦然。


isPrimaryKey:
isPrimaryKey属性是指当前字段是否主键,True:生成的SQL语句 Where条件包含此字段。

isForeignKey:
isForeignKey属性是指当前字段是否外键,仅明细表需要设置。True:当提交数据时,会自动设置标识为外键的值。举例:若主表的主键值为PK0001,循环处理对明细表外键值全部设置为PK0001。

isDocFieldName:
isDocFieldName属性是指当前字段是否单据号码(或流水号码),仅主表需要设置。流水号码由系统根据规则自动生成,如:DD000001。True:当提交数据时,会自动给此字段生成流水号码和赋值。

isLookup:
isLookup属性是指当前字段是否参考字段,当前ORM模型对应的物理表是不存在此字段的。
isLookup属性其实没多大作用,若isLookup=True, isAddOrUpdate必须=False,表示此字段不可生成SQL。


用途:


贴图图片-ORM_FieldAttribute类详解字段特性定义


参考资料:

ORM_TableAttribute类详解:资料表特性定义



上一篇 下一篇