CYQ.Data V5 从入门到放弃ORM系列:教程 - AppConfig、AppDebug类的使用

1:AppConfig类的介绍:

Public Static (Shared) Properties

IsEnumToInt 是否使用表字段枚举转Int方式(默认为false)。 设置为true时,可以加快一点性能,但生成的表字段枚举必须和数据库一致。
Aop Aop 插件配置项 示例配置:[ 完整类名,程序集(dll)名称]<add key="Aop" value="Web.Aop.AopAction,Aop"/>
ThreadBreakPath Tool.ThreadBreak 使用时,外置的文件配置相对路径(默认在环境变量Temp对应文件中)
EntitySuffix 生成的实体类的后缀。
Version 获取当前Dll的版本号
RunPath 框架的运行路径(Bin目录)

Public Static (Shared) Methods

GetApp Overloaded. 获取Web.config或App.config的值。
GetAppInt 获取Web.config或App.config的数字值(允许值不存在或为空时输出默认值)。
GetConn Overloaded. 获取Web.config或App.config的connectionStrings节点的值。
SetApp 设置Web.config或App.config的值。 

说明:

1:AppConfig类的属性名和Web.config/App.config的AppSetting节点的Key同名。

2:除了基本的属性和方法,还包括以下的五大类配置。

AppConfig.Cache 

Public Static (Shared) Properties

IsAutoCache 是否智能缓存数据(默认开启)
DefaultCacheTime Cache.CacheManage 默认缓存项的时间[分钟(默认60)]
MemCacheServers 分布式缓存的服务器配置,多个用逗号(,)分隔
NoCacheTables AutoCache开启时,可以设置不缓存的Table,多个用逗号分隔
IngoreCacheColumns AutoCache开启时,可以设置不受更新影响的列名,用Json格式。 {talbeName1:'column1,column2',talbeName2:'column1,column2'} 

AppConfig.DB

Public Static (Shared) Properties

PagerBySelectBase MSSQL是否启用分页存储过程SelectBase,默认false
DefaultDalType 默认数据库类型(只读)
CommandTimeout 全局的数据库命令默认超时设置,默认值120秒(单位:秒)
MasterSlaveTime 读写分离时用户对主数据库操作持续时间,默认值10秒(单位:秒)
DefaultConn 默认数据库链接(可赋完整链接语句或Web.config配置项名称) 如果不在配置文件(Web.Config)上配置Conn链接,可对此属性赋值进行配置。
DefaultDataBase 默认数据库名称(只读)
FilterSqlInjection MAction所有操作中的where条件,默认有超强的过滤单词,来过滤Sql注入关键字,如果语句包含指定的过滤词,则会返回错误信息,并记录日志。 如果需要自定义关键字,可配置此项,如:“delete;from,truncate,其它单词”,分号表词组,需要同时包含两个词; 多个过滤词组以","逗号分隔
AutoID MAction 操作 Oracle 时自增加int类型ID所需要配置的序列ID,Guid为ID则不用。 如果需要为每个表都配置一个序列号,可以使用:SEQ_{0} 其中{0}会自动配对成表名,如果没有{0},则为整个数据库共用一个序列。 默认参数值:SEQ_{0}
SchemaMapPath MAction 可将表架构映射到外部指定相对路径[外部存储,可避开数据库读取]
DeleteField 删除字段名称(若表存在此设置的字段名称时,MActon的删除操作将变更变为更新操作) 默认:IsDeleted
EditTimeFields 更新时间字段名称(若表存在指定字段名称时,自动更新时间,多个用逗号分隔)
HiddenFields 系统全局要隐藏的字段名称(默认值为:"cyqrownum,rowguid,deletefield") 

AppConfig.Debug

Public Static (Shared) Properties

OpenDebugInfo 开启信息调试记录:开启后MAction.DebugInfo可输出执行日志。 同时AppDebug若要使用,也需要开启此项。
SqlFilter 毫秒数(这个是在对所有SQL语句的:将所有长时间(ms)的SQL语句写入日志,对应配置项LogPath的路径)
InfoFilter 毫秒数(这个是在AppDebug开启后的:可通过此项设置条件过滤出时间(ms)较长的SQL语句) 

AppConfig.Log

Public Static (Shared) Properties

IsWriteLog 是否写数据库异常日志:开启时:有异常不抛出,转写入数据库;不开启:有异常会抛出
LogConn CYQ.Data.Log 类记录数据库异常日志 - 数据库链接配置
LogPath 文本日志的配置相对路径(默认为:Logs\\")
LogTableName 异常日志表名(默认为SysLogs,可配置) 

AppConfig.XHtml 

Public Static (Shared) Properties

CDataLeft Xml.XHtmlHelper 中使用的 "<![CDATA[" 项
CDataRight Xml.XHtmlHelper 中使用的 "]]>" 项
DtdUri Xml.XHtmlHelper 中操作Html需要配置的DTD解析文档相对路径
Domain Xml.MutilLanguage 语言切换设置时Cookie所需要的网站主域名[不带www]
SysLangKey Xml.MutilLanguage 类的默认语言Key,默认值:Chinese 

 

2:AppDebug

Public Static (Shared) Properties

IsRecording 正在记录中
Info 获取调试信息

Public Static (Shared) Methods

Start 开始记录调试信息
Stop 停止并清除记录的调试信息 

示例代码:

class Program
    {
        static void Main(string[] args)
        {
            AppConfig.Debug.OpenDebugInfo = true;//首先要打开这个

            AppConfig.Debug.InfoFilter = 20;//记录SQL语句执行时间>1毫秒的(这个是在AppDebug开启后的:)
            AppConfig.Debug.SqlFilter = 2;//记录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);
            }
        }
    }

运行结果:

总结:

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/ 

本文原创发表于博客园,作者为路过秋天,原文链接:http://www.cnblogs.com/cyq1162/p/5863384.html

时间: 2024-09-15 17:02:19

CYQ.Data V5 从入门到放弃ORM系列:教程 - AppConfig、AppDebug类的使用的相关文章

CYQ.Data V5 从入门到放弃ORM系列:框架的优势

前言: 框架开源后,学习使用的人越来越多了,所以我也更加积极的用代码回应了. 在框架完成了:数据库读写分离功能 和 分布式缓存功能 后: 经过三天三夜的不眠不休,终于完成框架第三个重量级的功能:自动化分布式缓存. 源代码已经提交,源码地址见:终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了 记得很多年前,大概2010年左右吧,CYQ.Data框架进入快速更新版本阶段的时候, 那时候的我会经常在一些技术群里有意无意的说起自己的框架,然后群里总有那么一些自我而自负的人会说: 你

CYQ.Data V5 从入门到放弃ORM系列:教程 - MAction类使用

背景: 随着V5框架使用者的快速增加,终于促使我开始对整个框架编写完整的Demo. 上周大概花了一星期的时间,每天写到夜里3点半,终完成了框架所有功能的Demo. 同时,按V5框架名称空间的顺序,对每个类的使用,补充相应的文章介绍,以漏补缺. 以下开始介绍: MAction Demo的项目文件: 1:项目解决方案: 2:两个文件在Debug目录里: 演示的是SQLite数据库(默认System.Data.SQLite.DLL是64位版本,如果运行提示加载出错,自己解压32位的复盖即可) demo

CYQ.Data V5 从入门到放弃ORM系列:教程 - Log、SysLogs两个日志类使用

Log 静态类介绍: Public Static (Shared) Methods GetExceptionMessage 获取异常的内部信息 WriteLogToDB Overloaded. 将日志写到数据库中[需要配置LogConn项后方生效 ] WriteLogToTxt Overloaded. 将日志写到外部txt[web.config中配置路径,配置项为Logpath,默认路径为 "Logs/" ]  说明: 1:这个类很简单,主要的使用方法只有:WriteLogToTxt.

CYQ.Data V5 从入门到放弃ORM系列:教程 - MProc类使用

MProc介绍 MProc:是一个用于执行SQL或存储过程的数据库操作类,它轻量高性能地类似于Dapper. MProc:它出现的场景很少,因为MAction自身就能处理掉90%-100%的数据操作(以存储过程为核心操作的除外) MProc项目Demo 1:项目图:只有一个控制台代码,说明此类的使用极度简单. 2:示例代码: 1 class Program 2 { 3 4 static void Main(string[] args) 5 { 6 //MAction已经演示了配置文件配置链接,这

CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括使用方式,及相关介绍,都容易引人误解. 为此,我打算重新写个系列来介绍最新的版本,让大伙从传统的ORM编程过渡到自动化框架型思维编程(自已造的词). 于是:这个新系列的名称就叫:CYQ.Data 从入门到放弃ORM系列 什么是:CYQ.Data 1:它是一个ORM框架. 2:它是一个数据层组件. 3

终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了

前言: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了. 群里的网友:太平说: 记得一年前你开源另一个项目的时候我就说过  这么多年 秋天有两点没变 一是还是单身 另外一个就是cyq.data还没开源  终于等到开源了! 也许吧,只有把cyq.data最终开源了,才能解决单身问题,不然我在这上面花的时间太多,都没时间和妹子聊天了.   几个重要网址: 源码SVN地址:https://github.com/cyq11

CYQ.Data V5文本数据库技术原理解密

前言: 这两天有点感冒状态,除了以前折腾 微博粉丝精灵 腾到三更,最近也在折腾个别工具到四更,偶尔心来心潮,赶紧写写文章,最近有很多朋友对CYQ.Data V5里的文本数据库感兴趣,这里就给大伙说下文本数据库技术原理,给大伙解下密.     CYQ.Data 框架的稳定与前进: CYQ.Data 对于V4系列,版本号就在V4.55版本就不再提高了,主要是为了保留一个最稳定的版本,基本除了Bug修正,不会再有大于V4.N的版本号出现了. 而V5版本,这一两年来,事实上,代码改动相当大,内部类的结构

CYQ.Data V5 分布式自动化缓存设计介绍(二)

CYQ.Data V5 分布式自动化缓存设计介绍(二) 前言: 最近一段时间,开始了<IT连>创业,所以精力和写的文章多数是在分享创业的过程. 而关于本人三大框架CYQ.Data.Aries.Taurus.MVC的相关文章,基本都很少写了. 但框架的维护升级,还是时不时的在进行中的,这点从开源的Github上的代码提交时间上就可以看出来了. 毕竟<IT连>的后台WebAPI,用的是Taurus.MVC,后台系统管理用的是Aries. 不过今天,就不写创业相关的文章了,先分享篇技术类

CYQ.Data V5 MDataTable 专属篇介绍

前言 以前一两个月才出一篇,这三天有点变态地连续1天1篇(其实都是上周末两天写好的存货). 短期应该没有新的和此框架相关的文章要写了,这应该是最后一篇,大伙且看且珍惜. 前两篇讲数据库读写分离和分布式缓存,这篇隆重地介绍一下:MDataTable,毕竟它有很多未公布或隐藏技能,值得一看. CYQ.Data 核心使用类介绍 常用: 1:操作数据库:MAction.MProc (名称空间:CYQ.Data) 2:日志操作:Log.SysLogs(名称空间:CYQ.Data) 3:配置和性能调试:Ap