日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

开源数据访问组件Smark.Data 1.7新增功能

發(fā)布時(shí)間:2024/1/17 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开源数据访问组件Smark.Data 1.7新增功能 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

借助于擴(kuò)展方法的功能,這一版本的改進(jìn)可以讓數(shù)據(jù)庫(kù)操作變得更簡(jiǎn)單方便,在數(shù)據(jù)庫(kù)操作相關(guān)會(huì)給你一種全新的體驗(yàn).主要改進(jìn)有以下幾點(diǎn):

  • 條件表達(dá)式可以直接和string進(jìn)行組合,從而更靈活地創(chuàng)建復(fù)雜的查詢條件
  • 擴(kuò)展Load_方法,可以直接在值對(duì)象的基礎(chǔ)上獲取相關(guān)ID數(shù)據(jù)對(duì)象
  • 擴(kuò)展一系的查詢方法,可直接在string的sql上進(jìn)行數(shù)據(jù)操作,包括查詢獲取查詢對(duì)象數(shù)據(jù).在操作過程完全不需要借助于其他對(duì)象來處理.
  • 擴(kuò)展可以直接在存儲(chǔ)過程對(duì)象進(jìn)行執(zhí)行操作
以上的一系列擴(kuò)展都是直接能操作數(shù)據(jù),而不再需引用相關(guān)條件對(duì)象或數(shù)據(jù)庫(kù)上下文對(duì)象,讓數(shù)據(jù)操作變得更簡(jiǎn)單靈活.

對(duì)象獲取和保存

var emp = 3.Load_<Employee>();emp.Notes += "_test";emp.Save_();

以上就是簡(jiǎn)單地根據(jù)ID值獲取對(duì)象,修改并保存.由于擴(kuò)展方法容易導(dǎo)致和其他方法沖突,所以在方法添加了_以便區(qū)分.

SQL執(zhí)行

在原來的版本時(shí)處理一些SQL執(zhí)行,必須借助于一些對(duì)象.就是必須創(chuàng)建一個(gè)SQL執(zhí)行對(duì)象來處理SQL.但在1.7版中就不再需要這樣做,直接在一個(gè)SQL的String基礎(chǔ)上就能執(zhí)行操作.

"delete * from employees".Execute();

以上是簡(jiǎn)單地執(zhí)行一個(gè)delete的sql語(yǔ),當(dāng)然也可以執(zhí)行一個(gè)查詢并返回一個(gè)對(duì)象列表

foreach (var item in "select * from employees".List<Employee>()){Console.WriteLine(item.FirstName);}

查詢需要設(shè)置相關(guān)參數(shù)

foreach (var order in "select * from orders where employeeid=@p1".Parameter("p1", 3).List<Order>()){Console.WriteLine("orderid:{0}\t orderdate:{1}", order.OrderID, order.OrderDate);}

存儲(chǔ)過程執(zhí)行

CustOrderHist coh = new CustOrderHist();coh.CustomerID = "ALFKI";coh.ExecProc_();

只需要?jiǎng)?chuàng)建一個(gè)存儲(chǔ)過程描述對(duì)象,設(shè)置好相關(guān)參數(shù)值就可以直接執(zhí)行處理,當(dāng)然也可以執(zhí)行并返回一個(gè)查詢結(jié)果.

CustOrderHist coh = new CustOrderHist();coh.CustomerID = "ALFKI";foreach (var data in coh.ExecProcToObjects_<CustOrderHistData>()){Console.WriteLine("{0}\t{1}", data.ProductName, data.Total);}

對(duì)象條件和string描述的條件整合

在原有的條件表達(dá)式中處理復(fù)雜的SQL查詢變得比較麻煩,實(shí)際情況下一些復(fù)雜的條件的確沒有直接SQL來得直觀,因此新版條件表達(dá)式可以直接和string描述的條件整合并產(chǎn)生新的表達(dá)式對(duì)象進(jìn)行數(shù)據(jù)操作.

Expression exp = new Expression();exp &= Order.orderDate >= "1996-7-1";exp &= " employeeid in (select employeeid from employees where region=@p1)".Add("p1", "WA");foreach (var order in exp.List<Order>()){Console.WriteLine("orderid:{0}\t orderdate:{1}", order.OrderID, order.OrderDate);}

總結(jié)

以上幾種操作的簡(jiǎn)化相信可以讓你操作數(shù)據(jù)庫(kù)變得更輕松和靈活.

組件官網(wǎng):http://www.ikende.com/SmarkData.aspx

源代碼網(wǎng)站:http://smark.codeplex.com/

總結(jié)

以上是生活随笔為你收集整理的开源数据访问组件Smark.Data 1.7新增功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。