PetaPoco 快速上手
今天來給大家分享一個(gè)好用的輕型的.net框架的ORM——PetaPoco
本著快速上手的原則,我們通過和EF對比,讓大家能快速使用PetaPoco
PetaPoco大家可能沒有聽說過,但大家一定聽說過或者用過EF吧,其實(shí),PetaPoco和EF是一個(gè)性質(zhì)的東西,只不過PetaPoco相對于EF而言較為輕量級的。
與EF一樣,我們可以再NuGet中將其引用安裝進(jìn)來。
安裝完畢之后,我們可以就可以在解決方案中看到多個(gè)文件夾。
注:ExModels這個(gè)文件夾是我自己加上的,不是自己生成的。
在EF中,分為好幾種模式,如:代碼優(yōu)先(Code First),數(shù)據(jù)庫優(yōu)先(DataBase First) 等等……在PetaPoco中只有與EF類似的數(shù)據(jù)庫優(yōu)先即DataBase First(可能還有其他模式,但筆者沒有深入研究)。
我們來說一下PetaPoco中幾個(gè)關(guān)鍵的文件
在Generated文件有一個(gè)Database.tt的文件,他下面還有個(gè)Database.cs的文件,這兩個(gè)文件,是PetaPoco'數(shù)據(jù)庫優(yōu)先模式'的關(guān)鍵文件。本著快速上手的原則,其他文件就不做一一說明了。
下面我們來看一下如何在一個(gè)項(xiàng)目中來快速使用PetaPoco。
第一步:在App.config或Web.config 文件中配置數(shù)據(jù)庫連接字符串。
第二步:配置Database.tt文件。
打開Database.tt文件,給大家說一下幾個(gè)比較重要的配置屬性,沒有提到的,可以用他們給的默認(rèn)值。
上面標(biāo)注的就是幾個(gè)在項(xiàng)目中需要用到的比較重要的配置屬性,還有一些配置屬性沒有做一一的說明,小伙伴們可以自己研究一下,或者去網(wǎng)上查一下資料。
點(diǎn)擊保存(Ctrl+S),則PetaPoco會(huì)自動(dòng)關(guān)聯(lián)相應(yīng)的數(shù)據(jù)庫,給我們生成每個(gè)表的表實(shí)例,表明即為實(shí)例的類名,表字段名即為實(shí)例類的屬性名,是不是感覺和EF的DataBase First 很類似啊。
PetaPoco將自動(dòng)生成的類實(shí)例保存到了PetaPoco.cs文件中了。我們可以在這個(gè)文件中查看。如果遇到數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)發(fā)生變化,我們可以在Database.tt中重新點(diǎn)擊保存(Ctrl+S)一下,即可更新了。
PetaPoco配置完了,下面就可以真槍實(shí)彈的來用它進(jìn)行對數(shù)據(jù)庫的一系列操作了。
根據(jù)上面的Database.tt的配置,我們生成的Database.cs文件中,命名空間和類名如下:
下面我用簡單的幾個(gè)小例子來給大家介紹一下PetaPoco操作數(shù)據(jù)庫的一些方法函數(shù)。
1、初始化
var db = new AntManManagerDB(); var db = new AntManManagerDB("AntManManager");上述兩行是常用的初始化Database的代碼,還有很多初始化的重載,大家可以自己看一下。
2、Insert
//message 是PetaPoco根據(jù)數(shù)據(jù)庫表生成的類實(shí)例var db = new AntManManagerDB();db.Insert(message); db.Execute("Insert語句");
3、Delete
//message 是PetaPoco根據(jù)數(shù)據(jù)庫表生成的類實(shí)例 var db = new AntManManagerDB(); db.Delete(message) db.Execute("Delete語句");4、Update
//message 是PetaPoco根據(jù)數(shù)據(jù)庫表生成的類實(shí)例var db = new AntManManagerDB(); db.Update(message) db.Execute("Update語句");
5、Select
//單條查詢 var a=db.SingleOrDefault<Message>("SELECT * FROM articles WHERE article_id=@0", 123); //分頁查詢,返回Page類實(shí)例,其屬性中,有很多你需要的值哦 var result=db.Page<Message>(1, 20, // <-- 第幾頁,每頁幾條"SELECT * FROM articles WHERE category=@0 ORDER BY date_posted DESC", "coolstuff"); // 查詢所有數(shù)據(jù) foreach (var a in db.Query<Message>("SELECT * FROM message")) {Console.WriteLine("{0} - {1}", a.message_id, a.title); } //查詢所有數(shù)據(jù) var a=db.Fetch<Message>("SELECT * FROM message")6、事務(wù)
var db = new AntManManagerDB();db.BeginTransaction();try{foreach (var message in listMessage){db.Insert(message);}db.CompleteTransaction();return true;}catch (Exception e){db.AbortTransaction();throw new Exception(e.Message);}常用的數(shù)據(jù)庫操作就這些了。
挺好用的,拿出來分享一下。
努力,不是為了要感動(dòng)誰,也不是要做給哪個(gè)人看,而是要讓自己隨時(shí)有能力跳出自己厭惡的圈子,并擁有選擇的權(quán)利。記住,用自己喜歡的方式過一生。轉(zhuǎn)載于:https://www.cnblogs.com/yulei126/p/6757750.html
總結(jié)
以上是生活随笔為你收集整理的PetaPoco 快速上手的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python-面向对象进阶
- 下一篇: (转载)VS2010/MFC编程入门之五