天天看點

CYQ.Data 輕量資料層之路 V4.5 版本釋出[更好的使用體驗,更優的緩存機制]

前言:

下面看一下新版本的修改記錄

CYQ.Data 輕量資料層之路 V4.5 版本釋出[更好的使用體驗,更優的緩存機制]

實用:

1:maction:select方法增加重載:select(string where);

2:formatwhere處理了"parent is null"的"is"關鍵字;處理"order by"語句補充為"1=1 order by ..."

3:maction增加exists方法

4:mdatarow 增加toentity<t>()方法轉實體

5:允許更新null值到資料庫中

事務:

6:修正事務二次復原的錯誤,即連續調用兩次action.rollback();

7:修正二次啟動事務。

緩存:

8:緩存增加set方法,無則添加,有則更新

9:大力修改cache機制,使資訊更容易檢視.[定時清緩存]

其它:

10:mdatarow 重寫clear()方法,該方法将清除行的資料[即資料重置為null]

11:aop的end方法修改傳回值為mdatarow和mdatatable結果集

12:修正ormbase轉實體時值為dbnull.value的轉換異常

CYQ.Data 輕量資料層之路 V4.5 版本釋出[更好的使用體驗,更優的緩存機制]

下面進行詳細的解說

一:實用性功能介紹

1:maction:select方法增加重載:select(string where)

在v4.3及之前版本,僅存在以下兩個原型方法:

public mdatatable select()

public mdatatable select(int pageindex, int pagesize, string where, out introwcount)

有很多人使用習慣:select("where語句");然後發現where語句不起作用,全部資料都查出來了,然後糾結的問起這個問題。

原因:

不存在該重載方法。為何不報錯?有點迷惑。

因為預設有aop功能,該參數會變成aop參數傳給aop功能使用,多數人不了解aop,是以第一次使用上容易引發此問題。

本次增加了重載的方法,一來适應大衆使用習慣,二來也消除掉一些迷惑。

問題1:action.select(1,10,"parent is null",out count);

原因:會被解析成id="parent is null",是以條件将失敗。

解決方法:action.select(1,10,"1=1 and parent is null",out count);

可以的原因:因為有"="号或其它符号時,則不會被解析成id=xxx的形式。

本次增加is解析,解決了這個問題。

問題2:action.select(1,10,"order by id desc",out count);

原因:内部組裝為:“...where"+"order by id desc",sql語句文法錯誤

解決方法:action.select(1,10,"1=1 order by id desc",out count);

可以的原因:組成:"...where+“1=1 order by id desc",這樣組裝就正常能過了。

本次自動補充1=1字首。以後可以放心的直寫order by語句了。

早期的判斷:if(action.getcount(where語句)>0){}來判斷。

此次增加後判斷:if(action.exists(where語句)){},表達上看更前進了一些。

在很多網友的使用中,還是有很多使用實體類的使用者。

CYQ.Data 輕量資料層之路 V4.5 版本釋出[更好的使用體驗,更優的緩存機制]

cyq.data中可以通過:action.select().tolist<t>(),将表轉成實體類。

不過對于單行實體類,一直沒此功能,此處增加功能後,即可:

if(action.fill(id)){userinfo info=action.data.toentity<userinfo>();}

可以填充後轉實體類操作。

CYQ.Data 輕量資料層之路 V4.5 版本釋出[更好的使用體驗,更優的緩存機制]

本次增加的功能,允許你設定:

action.set(字段,null)或者action.set(字段,dbnull.value);

然後通過action.update();将null值更新回資料庫。

二:事務

6:修正事務二次復原的錯誤[連續調用兩次action.rollback()]

在之前版本中,連續調用兩次action.rollback()來復原兩次事務是會抛異常的,

雖然一般你不會這麼做,但還是處理了一下。

7:修正二次啟動事務

一個maction中,如果你結束掉事務之後,是無法啟動第二個事務的。

本次修正後可以在一個maction中多次啟用關閉事務。

三:緩存

8:9:本次版本更新到最新版本緩存機制。

四:其它

10:mdatarow 重寫clear()方法:該方法将清除行的資料[即資料重置為null]

最後:

版權聲明:本文原創發表于部落格園,作者為路過秋天,原文連結:

http://www.cnblogs.com/cyq1162/archive/2011/05/06/2038712.html