一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-通过SQL实现特殊业务...
????????? 前面的四篇文章演示ORM的一些常規操作與配置,通過前面的文章,應用開發人員要可以使用ORM開發出簡單的應用,但是,ORM也不是萬能鑰匙,在業務應用中,還有很多是ORM解決不了的問題,對于這些問題,我們必須景借助于SQL語句。
本文重點
????????? 既然ORM解決不了所有的問題,我們得借助于SQL語句,也就是我們可以理解為在DAL層,在ORM對象中,還得支持SQL的操作:
????????? AgileEAS.NET平臺中的ORM提供了這種支持,他通過了ORM對象提供的DataAccessor屬性完成SQL語句的查詢與執行,即在ORM組件中支持下的程序寫法:
?????????? this.DataAccessor.Execute(sql語句,參數)。
????????? 有關于UDA對象的使用請參考一步一步教你使用AgileEAS.NET基礎類庫進行應用開發-基礎篇-使用UDA操縱SQL語句、一步一步教你使用AgileEAS.NET基礎類庫進行應用開發-基礎篇-UDA中的委托與應用、一步一步教你使用AgileEAS.NET基礎類庫進行應用開發-基礎篇-UDA中處理事務三篇文章。
演示的例子
????????? 本文的演示我將在前面的演示的基礎之上演示實現取得商品字典中最大的IDN號的實現,首先我們修改ClassLibDemo.DAL.SQLServer項目的Product.cs文件,在類Product中增加如下代碼:
?1?????????///?<summary>?2?????????///?取記錄最大號。
?3?????????///?</summary>
?4?????????///?<returns></returns>
?5?????????public?int?GetMaxIdn()
?6?????????{
?7?????????????return?(int)this.DataAccessor.Query("select?isnull(max(idn),0)?maxid?from?"?+?this.DbTableName);
?8?????????}
?9?
10?????????///?<summary>
11?????????///?取記錄最大號。
12?????????///?</summary>
13?????????///?<returns></returns>
14?????????public?int?GetMaxNewIdn()
15?????????{
16?????????????return?(int)this.DataAccessor.Query("select?isnull(max(idn),0)+1?maxid?from?"?+?this.DbTableName);
17?????????}
?
???????? 然后我們在ClassLib.OrmDemo項目的DataObjectDemo增加如下代碼:
?1?????????///?<summary>?2?????????///?演示增加一條記錄。
?3?????????///?</summary>
?4?????????public?void?DemoInsert2()
?5?????????{
?6?????????????Product?product?=?new?Product();
?7?????????????product.OrmAccessor?=?OrmContext.OrmAccessor;
?8?
?9?????????????product.Idn?=?product.GetMaxNewIdn();
10?????????????product.Code?=?"AXX-"?+?product.Idn.ToString("D6");
11?????????????product.Name?=?"臺式電腦";
12?????????????product.Spec?=?"主流配置/扣肉i7/21顯示";
13?????????????product.Unit?=?"臺/套";
14?????????????product.Description?=?string.Empty;
15?
16?????????????try
17?????????????{
18?????????????????product.Insert();
19?????????????????System.Console.WriteLine("成功插入記錄");
20?????????????}
21?????????????catch?(System.Exception?exc)
22?????????????{
23?????????????????System.Console.WriteLine("插入記錄出錯:"?+?exc.Message);
24?????????????}
25?????????}
26?
27?????????///?<summary>
28?????????///?演示讀取一條記錄。
29?????????///?</summary>
30?????????public?void?DemoQuery2()
31?????????{
32?????????????Product?product?=?new?Product();
33?????????????product.OrmAccessor?=?OrmContext.OrmAccessor;
34?????????????product.Code?=?"AXX-"?+?product.GetMaxIdn().ToString("D6");
35?????????????product.Refresh();?//讀數據
36?
37?????????????if?(product.Exists)
38?????????????{
39?????????????????System.Console.WriteLine(string.Format("已查詢以記錄:Idn={0}\tCode={1}\tName={2}\tSpec={3}\tUnit={4}\tDescription={5}",?product.Idn,?product.Code,?product.Name,?product.Spec,?product.Unit,?product.Description));
40?????????????}
41?????????????else
42?????????????{
43?????????????????System.Console.WriteLine("不存在此記錄");
44?????????????}
45?????????}
?
流程主控代碼中增加如下代碼: System.Console.WriteLine("按任意鍵繼續...");System.Console.Read();System.Console.WriteLine("演示自定義業務(取最大號Insert)的例子:");new DataObjectDemo().DemoInsert2();new DataObjectDemo().DemoQuery2();????????? 編譯運行,輸出結果:
?????????? 有關本例子所涉及的數據表結構請參考基于AgileEAS.NET平臺基礎類庫進行應用開發-總體說明及數據定義一文,有關數據對象模型定義文件、文檔、DDL腳本請下載:http://files.cnblogs.com/eastjade/demo.db.doc.sql.rar,本文代碼下載:ORM.Demo5.rar。
鏈接
一步一步教你使用AgileEAS.NET基礎類庫進行應用開發-系列目錄
AgileEAS.NET平臺開發指南-系列目錄
AgileEAS.NET應用開發平臺介紹-文章索引
AgileEAS.NET平臺應用開發教程-案例計劃
AgileEAS.NET官方網站
敏捷軟件工程實驗室
QQ群:116773358
轉載于:https://www.cnblogs.com/eastjade/archive/2010/10/05/1842927.html
總結
以上是生活随笔為你收集整理的一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-通过SQL实现特殊业务...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 00002-两数之和-leetcode-
- 下一篇: 3.2_ 2_ 请求分页管理方式