前言:
繼上一版本:CYQ.Data 輕量資料層之路 V4.0 版本發布 ,又過去一個來月了,不過也過了一個新年了。
由於過年原因,因此架構也沒多折騰什麼,只是年前年後順路把SQLite,MySQL兩種資料庫給支援上了。
提示:基於網友的提醒,本次版本發布帶CYQ.Data.xml,增加了方法的中文提示。
下面看一下新版本的修改記錄
1:MAction的建構函式允許從MDataRow載入
2:MutilLanguage在設定Cookie時也同時設定語言標識
3:MutilLanguage預設語言取自瀏覽器語言
4:取消CYQ.Data.SQL.OutPutData類及兩個相關枚舉TableType|DataBaseType,將[產生枚舉|建立分頁預存程序|建立日誌表]等操作單獨移到協助工具輔助實現
5:取消ProcedureSql,新增SchemaAction來擷取表架構資料
6:增加對SQLite資料的支援
9:MAction增加從Json反載入資料填充
7:增加對MySql資料庫的支援
8:提升資料表架構的緩衝層級:MDataColumn->MDataRow
下面進行詳細的解說
一:MAction的建構函式允許從MDataRow載入
增加這個原因,是基於 秋色園 應用中,考慮到資料重用的問題,簡單解說一下:
1: 秋色園 緩衝了使用者的資訊,就是一行資料了,OK,那麼實際上對所有使用者的操作都來自同一張表,於是,可以直接從緩衝的Row中取資料表結構進行反填充即可以了。
由於資料表結構本身就有緩衝,所以上面的填充效果,簡單的看是不太明顯的。
2:當使用者編輯自己資料時,當獨的資料行無法進行操作,因此時候填充,可以迅速轉成可操作的MAction,節省一定的開銷。
二:MutilLanguage在設定Cookie時也同時設定語言標識
三:MutilLanguage預設語言取自瀏覽器語言
在 秋色園 中,多語言應用的是比較廣的,因此考慮的因素也是相對較多,包括對使用者的瀏覽器語言判別來顯示不同的語言文章,和通過顯示的尾碼和非尾碼等情況做處理,所以小小的需要改動一下。
順便說一下:CYQ.Data.Xml名稱空間下的內容,千萬不要放過。
四:取消CYQ.Data.SQL.OutPutData類及兩個相關枚舉TableType|DataBaseType,將[產生枚舉|建立分頁預存程序|建立日誌表]等操作單獨移到協助工具輔助實現
五:取消ProcedureSql,新增SchemaAction來擷取表架構資料
這兩個的調整,主要是為了減輕架構的大小,同時內部類重新最佳化了一下結構,不影響外圍使用。
同時,去掉OutPutData類,意味著一些協助工具功能,只能借協助工具輔助實現,包括產生mssql/oracle的分頁預存程序。
六:增加對SQLite資料的支援
七:增加對MySql資料庫的支援
採用外掛程式式方式載入,如果需要使用,只要把相應的 MySql.Data.dll 或者 System.Data.SQLite.dll 和 CYQ.Data.dll 放在一起即可。
由於SQLite和Access都是單個文章方式,因此資料庫連結配置方式類似如下:
<appSettings>
<add key="AccessDbNameForWeb" value="App_Data/myspace.mdb"/>
<add key="SQLiteDbNameForWeb" value="App_Data/sqlitedemo.db"/>
</appSettings>
<connectionStrings>
<!--<add name="Conn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}" providerName="System.Data.OleDb" />
<add name="Conn" connectionString="Data Source={0}" providerName="System.Data.SQLite"/>-->
<add name="Conn" connectionString="server=localhost;port=3309;user id=root;password=123456;database=mysqldemo" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
八:提升資料表架構的緩衝層級:MDataColumn->MDataRow
表架構快取提升了一個層級,理論上效能是提升的,本屬內部最佳化之事。
九:MAction增加從Json反載入資料填充
增加的這個功能是為Ajax應用準備的,應用範例程式碼:
using (MAction action = new MAction("Blog_User"))
{
action.GetFromJson("{id:2,name:\"秋色園\",url:\"www.cyqdata.com\"}");
action.Update();
}
結果就是把id為2的行資料的name和url欄位更改為相應的資料。
十:V4.3 架構下載
:下載中心-秋色園
PS:由於新增加資料庫,相應的協助工具輔助V4.3版本也同時提供下載。
十一:CYQ.Data架構項目案例
網址:http://www.cyqdata.com/cyqdata/article-cate-81
歡迎大夥繼續提供CYQ.Data架構項目案例。
後言:
到本版本為止,支援的資料庫類型為:Access/MSSQL[2000/2005/2008]/Oracle/SQLite/MySQL
其中Access/MSSQL兩個系列在大量的項目應用中應用過後,已相當的穩定。
對於Oracle,在測試中通過,已有兄台在實際應用項目中應用,靜待發布項目案例的那天。
對於SQLite和MySQL,在測試中通過,歡迎大夥在實際應用中若遇到問題歡迎反饋。