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/ 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM