CYQ.Data V5 从入门到放弃ORM系列:教程 - AppConfig、AppDebug类的使用
1:AppConfig类的介绍:
Public Static (Shared) Properties
| 是否使用表字段枚举转Int方式(默认为false)。 设置为true时,可以加快一点性能,但生成的表字段枚举必须和数据库一致。 | |
| Aop 插件配置项 示例配置:[ 完整类名,程序集(dll)名称]<add key="Aop" value="Web.Aop.AopAction,Aop"/> | |
| Tool.ThreadBreak 使用时,外置的文件配置相对路径(默认在环境变量Temp对应文件中) | |
| 生成的实体类的后缀。 | |
| 获取当前Dll的版本号 | |
| 框架的运行路径(Bin目录) |
Public Static (Shared) Methods
| Overloaded. 获取Web.config或App.config的值。 | |
| 获取Web.config或App.config的数字值(允许值不存在或为空时输出默认值)。 | |
| Overloaded. 获取Web.config或App.config的connectionStrings节点的值。 | |
| 设置Web.config或App.config的值。 |
说明:
1:AppConfig类的属性名和Web.config/App.config的AppSetting节点的Key同名。
2:除了基本的属性和方法,还包括以下的五大类配置。
AppConfig.Cache
Public Static (Shared) Properties
| 是否智能缓存数据(默认开启) | |
| Cache.CacheManage 默认缓存项的时间[分钟(默认60)] | |
| 分布式缓存的服务器配置,多个用逗号(,)分隔 | |
| AutoCache开启时,可以设置不缓存的Table,多个用逗号分隔 | |
| AutoCache开启时,可以设置不受更新影响的列名,用Json格式。 {talbeName1:'column1,column2',talbeName2:'column1,column2'} |
AppConfig.DB
Public Static (Shared) Properties
| MSSQL是否启用分页存储过程SelectBase,默认false | |
| 默认数据库类型(只读) | |
| 全局的数据库命令默认超时设置,默认值120秒(单位:秒) | |
| 读写分离时用户对主数据库操作持续时间,默认值10秒(单位:秒) | |
| 默认数据库链接(可赋完整链接语句或Web.config配置项名称) 如果不在配置文件(Web.Config)上配置Conn链接,可对此属性赋值进行配置。 | |
| 默认数据库名称(只读) | |
| MAction所有操作中的where条件,默认有超强的过滤单词,来过滤Sql注入关键字,如果语句包含指定的过滤词,则会返回错误信息,并记录日志。 如果需要自定义关键字,可配置此项,如:“delete;from,truncate,其它单词”,分号表词组,需要同时包含两个词; 多个过滤词组以","逗号分隔 | |
| MAction 操作 Oracle 时自增加int类型ID所需要配置的序列ID,Guid为ID则不用。 如果需要为每个表都配置一个序列号,可以使用:SEQ_{0} 其中{0}会自动配对成表名,如果没有{0},则为整个数据库共用一个序列。 默认参数值:SEQ_{0} | |
| MAction 可将表架构映射到外部指定相对路径[外部存储,可避开数据库读取] | |
| 删除字段名称(若表存在此设置的字段名称时,MActon的删除操作将变更变为更新操作) 默认:IsDeleted | |
| 更新时间字段名称(若表存在指定字段名称时,自动更新时间,多个用逗号分隔) | |
| 系统全局要隐藏的字段名称(默认值为:"cyqrownum,rowguid,deletefield") |
AppConfig.Debug
Public Static (Shared) Properties
| 开启信息调试记录:开启后MAction.DebugInfo可输出执行日志。 同时AppDebug若要使用,也需要开启此项。 | |
| 毫秒数(这个是在对所有SQL语句的:将所有长时间(ms)的SQL语句写入日志,对应配置项LogPath的路径) | |
| 毫秒数(这个是在AppDebug开启后的:可通过此项设置条件过滤出时间(ms)较长的SQL语句) |
AppConfig.Log
Public Static (Shared) Properties
| 是否写数据库异常日志:开启时:有异常不抛出,转写入数据库;不开启:有异常会抛出 | |
| CYQ.Data.Log 类记录数据库异常日志 - 数据库链接配置 | |
| 文本日志的配置相对路径(默认为:Logs\\") | |
| 异常日志表名(默认为SysLogs,可配置) |
AppConfig.XHtml
Public Static (Shared) Properties
| Xml.XHtmlHelper 中使用的 "<![CDATA[" 项 | |
| Xml.XHtmlHelper 中使用的 "]]>" 项 | |
| Xml.XHtmlHelper 中操作Html需要配置的DTD解析文档相对路径 | |
| Xml.MutilLanguage 语言切换设置时Cookie所需要的网站主域名[不带www] | |
| Xml.MutilLanguage 类的默认语言Key,默认值:Chinese |
2:AppDebug
Public Static (Shared) Properties
| 正在记录中 | |
| 获取调试信息 |
Public Static (Shared) Methods
示例代码:
class Program
{
static void Main(string[] args)
{
AppConfig.Debug.OpenDebugInfo = true;//首先要打开这个 AppConfig.Debug.InfoFilter = ;//记录SQL语句执行时间>1毫秒的(这个是在AppDebug开启后的:)
AppConfig.Debug.SqlFilter = ;//记录SQL执行语句时间>2毫秒的(这个是所有的SQL语句)
//注意打开软件文件,执行时间大于2毫秒的将记录在在 SqlFilter_时间.txt AppDebug.Start();//开始记录
Exe1();
Exe2();
Exe3();
Console.WriteLine(AppDebug.Info);//拿到调试信息
AppDebug.Stop();//关闭记录
Console.Read();
}
static void Exe1()
{
string sql = "select count(*) from users";
using (MProc proc = new MProc(sql))
{
proc.ExeScalar<string>();
} }
static void Exe2()
{
using (MAction action = new MAction("V_Article"))
{
action.Select();
}
}
static void Exe3()
{
using (MAction action = new MAction("Users"))
{
action.Fill();
}
}
}
运行结果:

总结:
1:AppConfig是比较常用(通常不是直接操作这个类,而是指配置Web.config)
2:AppDebug:只有在sql语句性能需要监控或优化的时候,才会使用。
CYQ.Data:GitHub源码:https://github.com/cyq1162/cyqdata
CYQ.Data:Demo 源码:http://code.taobao.org/p/cyqopen/src/trunk/CYQ.Data.GettingStarted/
CYQ.Data V5 从入门到放弃ORM系列:教程 - AppConfig、AppDebug类的使用的更多相关文章
- CYQ.Data V5 从入门到放弃ORM系列:框架的优势
前言: 框架开源后,学习使用的人越来越多了,所以我也更加积极的用代码回应了. 在框架完成了:数据库读写分离功能 和 分布式缓存功能 后: 经过三天三夜的不眠不休,终于完成框架第三个重量级的功能:自动化 ...
- CYQ.Data V5 从入门到放弃ORM系列:教程 - Log、SysLogs两个日志类使用
Log 静态类介绍: Public Static (Shared) Methods GetExceptionMessage 获取异常的内部信息 WriteLogToDB Overloaded. 将日志 ...
- CYQ.Data V5 从入门到放弃ORM系列:教程 - MProc类使用
MProc介绍 MProc:是一个用于执行SQL或存储过程的数据库操作类,它轻量高性能地类似于Dapper. MProc:它出现的场景很少,因为MAction自身就能处理掉90%-100%的数据操作( ...
- CYQ.Data V5 从入门到放弃ORM系列:教程 - MAction类使用
背景: 随着V5框架使用者的快速增加,终于促使我开始对整个框架编写完整的Demo. 上周大概花了一星期的时间,每天写到夜里3点半,终完成了框架所有功能的Demo. 同时,按V5框架名称空间的顺序,对每 ...
- CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维
前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...
- 终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了
前言: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了. 群里的网友:太平说: 记得一年前你开源另一个项目的时候我就说 ...
- 终于等到你:CYQ.Data V5系列 (ORM数据层,支持.NET Core)最新版本开源了
前言: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了. 群里的网友:太平说: 记得一年前你开源另一个项目的时候我就说 ...
- CYQ.Data V5 MDataTable 专属篇介绍
前言 以前一两个月才出一篇,这三天有点变态地连续1天1篇(其实都是上周末两天写好的存货). 短期应该没有新的和此框架相关的文章要写了,这应该是最后一篇,大伙且看且珍惜. 前两篇讲数据库读写分离和分布式 ...
- CYQ.Data V5 分布式自动化缓存设计介绍(二)
前言: 最近一段时间,开始了<IT连>创业,所以精力和写的文章多数是在分享创业的过程. 而关于本人三大框架CYQ.Data.Aries.Taurus.MVC的相关文章,基本都很少写了. 但 ...
随机推荐
- 《Django By Example》第五章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:大家好,我是新来的翻译, ...
- Java MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...
- Java基础Collection集合
1.Collection是所有集合的父类,在JDK1.5之后又加入了Iterable超级类(可以不用了解) 2.学习集合从Collection开始,所有集合都继承了他的方法 集合结构如图:
- DB1:数据库的创建和文件的修改
在SQL Server中,使用Create Database创建数据库,使用Alter Database命令,能够修改数据库的数据文件和日志文件. 一,创建数据库 1,在创建数据库时,最佳实践是: 创 ...
- 【资源】.Net 入门@提高 - 逆天的高薪之路!
入门看视频,提高看书籍,飘升做项目.老练研开源,高手读外文,大牛讲低调~ 官方学习计划 http://www.cnblogs.com/dunitian/p/5667901.html ----- ...
- CRL快速开发框架系列教程十二(MongoDB支持)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- 每天一个设计模式-7 生成器模式(Builder)
每天一个设计模式-7 生成器模式(Builder) 一.实际问题 在讨论工厂方法模式的时候,提到了一个导出数据的应用框架,但是并没有涉及到导出数据的具体实现,这次通过生成器模式来简单实现导出成文本,X ...
- SAP CRM 性能小技巧
导言 本页面打算收集SAP CRM实施中可以用于避免性能问题的注意事项,重要的事项会由图标标识. 如果你有其他的技巧想要说出来,别犹豫! 性能注意事项 通用 缓存读取类访问,特别是在性能关键的地方,比 ...
- 移动BPM解决方案分享
畅通开放 无边界的渠道 效率倍增 更高效的处理方式 即时共享 更强大的决策能力 各种终端应用 帮您实现:新任务通知.任务预警.催办.任务审批.任何数据汇总提醒消息通知...... 短信 客户端: ...
- git init和git init -bare区别
1 Git init 和 git init –bare 的区别 用"git init"初始化的版本库用户也可以在该目录下执行所有git方面的操作.但别的用户在将更新push上来的 ...