前面的文章一步一步教你使用AgileEAS.NET基礎類庫進行應用開發-基礎篇-示範ORM的基本操作和一步一步教你使用AgileEAS.NET基礎類庫進行應用開發-基礎篇-示範ORM的條件查詢兩篇文章我示範了ORM的基本使用并引申到開發中最常見的條件查詢業務,今天我基于前一篇文章的條件查詢的基礎示範根據條件的批量删除與更新。
在示範ORM的基于操作一文中我們示範了基于單記錄(實體)的删除(Update)和更新(處理),但是沒有提到指量記錄的更新與删除,本文旨在提出一種ORM應用中的解決方案并示範他的用法。
批量更新與删除資料記錄的本質是執行帶批量查詢條件的Update和Delete語句,ORM元件要完成這樣的功能,所實作的思想就是根據條件生成批量更新的SQL語句,批量删除的SQL語句新式: delete +資料庫表名+ where + 條件表達式,批量更新的SQL語句新式:update+資料庫表名+set+(列名=?[,…])+ where + 條件表達式。
既然我們知道了這樣的處理方法,那麼我們就可以轉換為ORM元件的表示方式進行處理,在ORM元件的ITable接口中存在着以下三個方法:
Delete方法使用很簡單,帶上删除記錄的條件對象即可,Update方法的使用則複雜一些,除了設定更新記錄的條件,還得設定更新列的内容,提供兩種表示形式,ColumnCollection 集合與字典集合,其目的是完成字典名=?(值)的表示形式。
關于條件查詢以及條件的構造的知識差不多也就是這些,講起來也沒有什麼講頭,重點才于如何組合這些條件實作複雜的業務,在今天的案例中我選擇性的示範幾個條件的用法,所使用的資料還是商品字典,達到以下的功能:
1.删除記錄ID從100到500的記錄并且機關為“1*瓶/瓶”的所有商品。
2.更新商品編碼前2位為“1a”并且機關為“1*袋/袋”的所有商品的商品說明為“垃圾貨”,本示範使用update的兩種重載。
實作,在ClassLibDemo.DAL.SQLServer項目的類ProductList增加以下代碼:
我們在控制台示範項目中使用這些查詢:
案例輸出結果:
<a href="http://images.cnblogs.com/cnblogs_com/eastjade/WindowsLiveWriter/AgileEAS.NETORM_F2B4/image_2.png"></a>
SQL事件探查:
<a href="http://images.cnblogs.com/cnblogs_com/eastjade/WindowsLiveWriter/AgileEAS.NETORM_F2B4/7E%7B66WJJRR%5BX9%5D%7DX)Q88V49_2.jpg"></a>
連結
<a href="http://www.cnblogs.com/eastjade/archive/2010/09/19/1830812.html">一步一步教你使用AgileEAS.NET基礎類庫進行應用開發-系列目錄</a>
<a href="http://www.cnblogs.com/eastjade/archive/2010/09/12/1824405.html">AgileEAS.NET平台開發指南-系列目錄</a>
<a href="http://www.cnblogs.com/eastjade/archive/2010/09/09/1822530.html">AgileEAS.NET應用開發平台介紹-文章索引</a>
<a href="http://www.cnblogs.com/eastjade/archive/2010/09/15/1826870.html">AgileEAS.NET平台應用開發教程-案例計劃</a>
<a href="http://www.smarteas.net/">AgileEAS.NET官方網站</a>
<a href="http://www.agilelab.cn/">靈活軟體工程實驗室</a>
QQ群:116773358
本文轉自 agilelab 51CTO部落格,原文連結:http://blog.51cto.com/agilelab/603027