ORM_FieldAttribute类详解:字段特性定义,框架内核根据此特性自动生成SQL脚本
ORM_FieldAttribute类详解:字段特性定义,框架内核根据此特性自动生成SQL脚本
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
/// 字段特性定义,根据参数自动生成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_TableAttribute类详解:资料表特性定义
参考文档:
达梦数据库 | 获取表结构的SQL脚本|C/S开发框架
自动升级程序支持SQL脚本更新升级
C# 动态组合SQL脚本LIKE语句及查询参数防SQL注入攻击
表网 - 网罗天下表结构,海量数据库表结构SQL脚本文件下载,软件开发文档下载
表网 - 网罗天下表结构,海量数据库表结构SQL脚本文件下载,软件开发文档下载
表网 - 网罗天下表结构,提供海量数据库表结构SQL脚本软件开发文档资源下载
SQL脚本获取SQLServer数据库目录存储过程:f_GetDBPath
C# 格式化CodeHighlighter生成的SQL脚本高亮着色源码(CSFramework.com原创)
SQL配置链接服务器脚本(SQL Link Server Script)
SQL2008多个查询条件分页查询脚本(原创)
提交数据时生成的SQL脚本便于实时跟踪
ORM_TableAttribute类详解:资料表特性定义
SqlServer自动备份计划,备份多个数据库,自动删除备份文件|C/S开发框架
CSFramework框架数据库备份还原操作手册(MySql/Oracle/SqlServer/达梦)|C/S开发框架
MySql数据库备份、还原操作指南|C/S开发框架
MySql MySqlBulkLoader批量导入数据(批导BulkInsert)|C/S开发框架
达梦数据库 | 获取表结构的SQL脚本|C/S开发框架
自动升级程序支持SQL脚本更新升级
C# 动态组合SQL脚本LIKE语句及查询参数防SQL注入攻击
表网 - 网罗天下表结构,海量数据库表结构SQL脚本文件下载,软件开发文档下载
表网 - 网罗天下表结构,海量数据库表结构SQL脚本文件下载,软件开发文档下载
表网 - 网罗天下表结构,提供海量数据库表结构SQL脚本软件开发文档资源下载
SQL脚本获取SQLServer数据库目录存储过程:f_GetDBPath
C# 格式化CodeHighlighter生成的SQL脚本高亮着色源码(CSFramework.com原创)
SQL配置链接服务器脚本(SQL Link Server Script)
SQL2008多个查询条件分页查询脚本(原创)
提交数据时生成的SQL脚本便于实时跟踪
ORM_TableAttribute类详解:资料表特性定义
SqlServer自动备份计划,备份多个数据库,自动删除备份文件|C/S开发框架
CSFramework框架数据库备份还原操作手册(MySql/Oracle/SqlServer/达梦)|C/S开发框架
MySql数据库备份、还原操作指南|C/S开发框架
MySql MySqlBulkLoader批量导入数据(批导BulkInsert)|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
